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

方案一: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 ="打印" >
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
< 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建议自行下载放置于自己网站目录下)

你可能感兴趣的:(web打印)