全面剖析web下打印的办法

先给一个简单实用的方式(可以打印多页,控制分页,隐藏非打印项目)
<!-- 语言无关 保存成 .HTML 看看 -->  
< html >  
< head >  
< meta  name =vs_targetSchema  content ="http://schemas.microsoft.com/intellisense/ie5" >  
< title > 看看 </ title >  
< meta  http-equiv ="Content-Type"  content ="text/html; charset=gb2312" >  
<!-- media=print 这个属性可以在打印时有效 -->  
< style  media =print >  
.Noprint
{display:none;} 
.PageNext
{page-break-after: always;} 
</ style >  

< style >  
.tdp 
{ 
border-bottom
: 1 solid #000000; 
border-left
: 1 solid #000000; 
border-right
: 0 solid #ffffff; 
border-top
: 0 solid #ffffff; 
}
 
.tabp 
{ 
border-color
: #000000 #000000 #000000 #000000; 
border-style
: solid; 
border-top-width
: 2px; 
border-right-width
: 2px; 
border-bottom-width
: 1px; 
border-left-width
: 1px; 
}
 
.NOPRINT 
{ 
font-family
: "宋体"; 
font-size
: 9pt; 
}
 

</ style >  

</ head >  

< body  >  
< center  class ="Noprint"   >  
< p >  
< OBJECT  id =WebBrowser  classid =CLSID:8856F961-340A-11D0-A96B-00C04FD705A2  height =0  width =0 >  
</ OBJECT >  
< input  type =button  value =打印  onclick =document.all.WebBrowser.ExecWB(6,1) >  
< input  type =button  value =直接打印  onclick =document.all.WebBrowser.ExecWB(6,6) >  
< input  type =button  value =页面设置  onclick =document.all.WebBrowser.ExecWB(8,1) >  
</ p >  
< p >   < input  type =button  value =打印预览  onclick =document.all.WebBrowser.ExecWB(7,1) >  
< br />  
</ p >  
< hr  align ="center"  width ="90%"  size ="1"  noshade >  
</ center >  

< table  width ="90%"  border ="0"  align ="center"  cellpadding ="2"  cellspacing ="0"  class ="tabp" >  
< tr >  
< td  colspan ="3"  class ="tdp" > 第1页 </ td >  
</ tr >  
< tr >  
< td  width ="29%"  class ="tdp" > &nbsp; </ td >  
< td  width ="28%"  class ="tdp" > &nbsp; </ td >  
< td  width ="43%"  class ="tdp" > &nbsp; </ td >  
</ tr >  
< tr >  
< td  colspan ="3"  class ="tdp" > &nbsp; </ td >  
</ tr >  
< tr >  
< td  colspan ="3"  class ="tdp" >< table  width ="100%"  border ="0"  cellspacing ="0"  cellpadding ="0" >  
< tr >  
< td  width ="50%"  class ="tdp" >< p > 这样的报表 </ p >  
< p > 对一般的要求就够了。 </ p ></ td >  
< td > &nbsp; </ td >  
</ tr >  
</ table ></ td >  
</ tr >  
</ table >  
< hr  align ="center"  width ="90%"  size ="1"  noshade class ="NOPRINT"   >  
<!-- 分页 -->  
< div  class ="PageNext" ></ div >  
< table  width ="90%"  border ="0"  align ="center"  cellpadding ="2"  cellspacing ="0"  class ="tabp" >  
< tr >  
< td  class ="tdp" > 第2页 </ td >  
</ tr >  
< tr >  
< td  class ="tdp" > 看到分页了吧 </ td >  
</ tr >  
< tr >  
< td  class ="tdp" > &nbsp; </ td >  
</ tr >  
< tr >  
< td  class ="tdp" > &nbsp; </ td >  
</ tr >  
< tr >  
< td  class ="tdp" >< table  width ="100%"  border ="0"  cellspacing ="0"  cellpadding ="0" >  
< tr >  
< td  width ="50%"  class ="tdp" >< p > 这样的报表 </ p >  
< p > 对一般的要求就够了。 </ p ></ td >  
< td > &nbsp; </ td >  
</ tr >  
</ table ></ td >  
</ tr >  
</ table >  
</ body >  
</ html >  
简单懂得 HTML CSS 即可。
下面样式只在打印时有用 <style media=print>
<style media=print>
.Noprint{display:none;}
.PageNext{page-break-after: always;}
</style>

WebBrowser 控件对象。只要是 win98 以上版本都有。
其实配合“分页样式表”,和 HTML表格 一般的打印都可以实现的。

如果想对 非Windows平台用户使用。
请去掉下面这些: 
< center  class ="Noprint"   >  
< p >  
<!-- 最主要是这个 -->  
< OBJECT  id =WebBrowser  classid =CLSID:8856F961-340A-11D0-A96B-00C04FD705A2  height =0  width =0 >  
</ OBJECT >  
< input  type =button  value =打印  onclick =document.all.WebBrowser.ExecWB(6,1) >  
< input  type =button  value =直接打印  onclick =document.all.WebBrowser.ExecWB(6,6) >  
< input  type =button  value =页面设置  onclick =document.all.WebBrowser.ExecWB(8,1) >  
</ p >  
< p >   < input  type =button  value =打印预览  onclick =document.all.WebBrowser.ExecWB(7,1) >  
< br />  
</ p >  
< hr  align ="center"  width ="90%"  size ="1"  noshade >  
</ center >  

调用IE内置打印组件完成web打印方案及例程

调用IE内置打印组件完成web打印方案及例程(10.28)

重点:
<OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0 VIEWASTEXT>
</OBJECT>
<input type=button value=打印 οnclick="document.all.WebBrowser.ExecWB(6,1)" class="NOPRINT">
<input type=button value=直接打印 οnclick="document.all.WebBrowser.ExecWB(6,6)" class="NOPRINT">
<input type=button value=页面设置 οnclick="document.all.WebBrowser.ExecWB(8,1)" class="NOPRINT">
<input type=button value=打印预览 οnclick="document.all.WebBrowser.ExecWB(7,1)" class="NOPRINT">

注意:
1、CSS对打印的控制:
<!--media=print 这个属性可以在打印时有效-->
<style media=print>
.Noprint{display:none;}
.PageNext{page-break-after: always;}
</style>

Noprint样式可以使页面上的打印按钮等不出现在打印页面上,这一点非常重要,因为它可以用最少的代码完成最需要的功能

PageNext样式可以设置分页,在需要分页的地方<div class="PageNext"></div>就OK了,呵呵

2、表格线粗细的设置,更是通过样式表:

<style>
.tdp
{
border-bottom: 1 solid #000000;
border-left: 1 solid #000000;
border-right: 0 solid #ffffff;
border-top: 0 solid #ffffff;
}
.tabp
{
border-color: #000000;

border-collapse:collapse;
}
</style>

或者:

<style>
.TdCs1 {
border:solid windowtext 1.0pt;
}
.TdCs2 {
border:solid windowtext 1.0pt; border-left:none;
}
.TdCs3 {
border-top:none;
border-left:solid windowtext 1.0pt;
border-bottom:solid windowtext 1.0pt;
border-right:solid windowtext 1.0pt;
}
.TdCs4 {
border-top:none;
border-left:none;
border-bottom:solid windowtext 1.0pt;
border-right:solid windowtext 1.0pt;
}
.underline {
border-top-style: none;
border-right-style: none;
border-bottom-style: solid;
border-left-style: none;
border-bottom-color: #000000;
}
</style>

WEB打印,去页眉和页脚

1. IE浏览器. 文件->页面设置.
把页脚去掉就行了.

2.用代码.
//有提示的..

< HEAD >  
< TITLE >  New Document  </ TITLE >  
< META  NAME ="Generator"  CONTENT ="EditPlus" >  
< META  NAME ="Author"  CONTENT ="YC" >  
< script  language ="VBScript" >  
dim hkey_root,hkey_path,hkey_key 
hkey_root
="HKEY_CURRENT_USER" 
hkey_path
="SoftwareMicrosoftInternet ExplorerPageSetup" 
'//设置网页打印的页眉页脚为空 
function pagesetup_null() 
on error resume next 
Set RegWsh = CreateObject("WScript.Shell"
hkey_key
="header" 
RegWsh.RegWrite hkey_root
+hkey_path+hkey_key,"" 
hkey_key
=" ooter" 
RegWsh.RegWrite hkey_root
+hkey_path+hkey_key,"" 
end function 
'//设置网页打印的页眉页脚为默认值 
function pagesetup_default() 
on error resume next 
Set RegWsh = CreateObject("WScript.Shell"
hkey_key
="header" 
RegWsh.RegWrite hkey_root
+hkey_path+hkey_key,"&w&b页码,&p/&P" 
hkey_key
=" ooter" 
RegWsh.RegWrite hkey_root
+hkey_path+hkey_key,"&u&b&d" 
end function 
</ script >  
</ HEAD >  

< BODY >  
< br >  
< br >  
< br >  
< br >  
< br >  
< br >< align =center >  
< input  type ="button"  value ="清空页码"  onclick =pagesetup_null() >   < input  type 

="button"  value ="恢复页吗"  onclick =pagesetup_default() >< br >  

</ p >  
</ BODY >  
</ HTML >  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值