您的位置:首页 > 其它

B/S程序中WEB打印的完美解决方案

2010-10-21 11:21 316 查看
方案一:ScriptX打印组件
方案二:WsReport打印组件

我们首先来说一下方案一:
采用的方法是仅仅使用官方提供的最新版本的.cab文件,cab文件是一个封包文件,该文件往往包含多个文件在其内,即通常所说的客户端activex,当用户第一次浏览网站的时候,该cab文件会自动下载并安装到客户端的电脑上,务须在服务器端注册,因此使用非常简单。闲话少叙,言归正传,让我们首先去官方下载cab文件,然后看如下代码就明白了。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
</head>
<body>
<!--这里调用控件ScriptX.cab-->
<object id="factory" style="display: none" viewastext classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814"
codebase="http://www.a.com/smsx.cab#Version=6,3,434,26">
</object>

<script defer>
//用于设置打印参数
function printBase() {
factory.printing.footer = ""   //页眉
factory.printing.footer = ""   //页脚
factory.printing.portrait = false   //true为纵向打印,false为横向打印
factory.printing.leftMargin = 1.5   //左页边距
factory.printing.topMargin = 0.5   //上页边距
factory.printing.rightMargin = 0.5   //右页边距
factory.printing.bottomMargin = 1.0   //下页边距
}

//用于调用设置打印参数的方法和显示预览界面
function printReport() {
printBase();
//window.print();
factory.printing.Preview();
}

//使界面最大化
maxWin();
function maxWin() {
var aw = screen.availWidth;
var ah = screen.availHeight;
window.moveTo(0, 0);
window.resizeTo(aw, ah);
}
</script>

<table width="100%" border="0" cellspacing="0" cellpadding="0" align="center" bordercolor="#FFFFFF">
<tr bordercolor="#FFFFFF">
<td>
<table width="70%" border="0" cellspacing="0" cellpadding="2" align="center">
<tr>
<td align="center">
<font size="5" face="宋体"><b>查询打印</b></font>
</td>
</tr>
<tr>
<td align="center">
<div id="divReport" name="divReport">
<input type="button" name="cmdPRINT" id="cmdPRINT" onclick="printReport()" value="打印">
      
<input type="button" onclick="window.close();" value="关闭">
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>


在上边的代码中,大家需要注意以下

<object id="factory" style="DISPLAY: none" viewastext classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" codebase="http://www.a.com/smsx.cab#Version=6,3,434,26"></object>


这段代码用来加载cab文件,clsid和codebase必须要和你下载的cab中的信息对应,否则组件会加载错误,这两项其实不难找,只要你用winrar打开你下载的cab文件,然后找到扩展名是.inf的文件,然后打开之,就能看到了。
使用范围:该组件针对打印大篇幅的文档非常好,对于那些对打印定位要求不是非常严格的东西。但是如果用它来打印增值税专用发票或者打印支票就不可以了。因为增值税专用发票类的东西对定位的要求非常的严格,那么这些东西我们用什么组件来打印呢?方法在下边,让我们看一下方案二就知道了。

我们再来看一下方案二:
wsreport这个组件可以用来打印对定位要求非常严格的内容,例如增值税专用发票,既然定位准确,那么控制的时候肯定就有难度,不过没关系,这个组件附带详细的使用说明,并且保证你能够看懂,呵呵,因为是国人开发的。不过这个组件是需要注册的,,非注册版本不能打印连续的分页,另外打印出来的文档永远都有“试用”二字,如果你想突破这些限制,那就自己破解吧。

(smsx.cab建议自行下载放置于自己网站目录下)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: