近日看到论坛中有好多人提到,Web 方式打印报表 的问题 都感觉很辣手。
本人有点小技巧愿意拿处来和大家分享。
本方法不分语言(ASP,ASP.NET,JSP,PHP..)可以生成HTML的语言都可以使用。
其实很简单只要你略懂 HTML,CSS 即可,打印的出来的效果(那就要看你自己了)个人认为一般的打印完全可以应付。

先给一个简单实用的方式(可以打印多页,控制分页,隐藏非打印项目)
<!--语言无关 保存成 .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- 2px;
border-right- 2px;
border-bottom- 1px;
border-left- 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 ;
</OBJECT>
<input type=button value=打印 οnclick=document.all.WebBrowser.ExecWB(6,1)>
<input type=button value=直接打印 οnclick=document.all.WebBrowser.ExecWB(6,6)>
<input type=button value=页面设置 οnclick=document.all.WebBrowser.ExecWB(8,1)>
</p>
<p> <input type=button value=打印预览 οnclick=document.all.WebBrowser.ExecWB(7,1)>
<br/>
</p>
<hr align='center' '90%' size='1' noshade>
</center>

<table '90%' border='0' align='center' cellpadding='2' cellspacing='0' class='tabp'>
<tr>
<td colspan='3' class='tdp'>第1页</td>
</tr>
<tr>
<td '29%' class='tdp'>&nbsp;</td>
<td '28%' class='tdp'>&nbsp;</td>
<td '43%' class='tdp'>&nbsp;</td>
</tr>
<tr>
<td colspan='3' class='tdp'>&nbsp;</td>
</tr>
<tr>
<td colspan='3' class='tdp'><table '100%' border='0' cellspacing='0' cellpadding='0'>
<tr>
<td '50%' class='tdp'><p>这样的报表</p>
<p>对一般的要求就够了。</p></td>
<td>&nbsp;</td>
</tr>
</table></td>
</tr>
</table>
<hr align='center' '90%' size='1' noshade class='NOPRINT' >
<!--分页-->
<div class='PageNext'></div>
<table '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 '100%' border='0' cellspacing='0' cellpadding='0'>
<tr>
<td '50%' class='tdp'><p>这样的报表</p>
<p>对一般的要求就够了。</p></td>
<td>&nbsp;</td>
</tr>
</table></td>
</tr>
</table>
</body>
</html>

<!--

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

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