全面剖析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"> </td> 
<td width="28%" class="tdp"> </td> 
<td width="43%" class="tdp"> </td> 
</tr> 
<tr> 
<td colspan="3" class="tdp"> </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> </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"> </td> 
</tr> 
<tr> 
<td class="tdp"> </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> </td> 
</tr> 
</table></td> 
</tr> 
</table> 
</body> 
</html> 
下面样式只在打印时有用 <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=打印 onclick="document.all.WebBrowser.ExecWB(6,1)" class="NOPRINT"> 
<input type=button value=直接打印 onclick="document.all.WebBrowser.ExecWB(6,6)" class="NOPRINT"> 
<input type=button value=页面设置 onclick="document.all.WebBrowser.ExecWB(8,1)" class="NOPRINT"> 
<input type=button value=打印预览 onclick="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><p align=center> 
<input type="button" value="清空页码" onclick=pagesetup_null()> <input type 
="button" value="恢复页吗" onclick=pagesetup_default()><br> 
</p> 
</BODY> 
</HTML> 
                    
                

.Noprint
                
            
        
浙公网安备 33010602011771号