关于PAZU打印控件(Web)

本文介绍了一种使用PAZU打印控件实现在Web环境下大数据量后台分页打印的方法,通过循环加载页面并自动打印,避免了IE自带打印控件的限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近由于工作需要写了个报表系统,由于之前一直做的java WEB项目,对这种web模式还是比较熟悉的,所以选择了jsp+struts(控制器)+业务(自己封装) 来写的。这个报表系统要求比较另类,动态表头,这个不像大部分报表的要求(都是作死的表头,只需要做好模板填充数据就行)这个可苦了我了,java的面向对象的思想在这个业务层还真是体现不明显,因为我全是拿List来做的,顺序加入数据,封装List,然后在页面顺序显示。。。。具体的不说了,还是说说打印这块,这块真的很麻烦,用IE自身的打印控件限制多多,尤其是不能直接打印,每次必弹出一个框框让选择打印机,这个对于做到后台分页打印大量数据就不行了,本来IE打印就存在问题,只能打印当前页。。。。后来偶然看到四方的web打印控件,文档里有个好方法,真的是不错.下面就是这个方法的大致工程:

如果数据量大,或者程序设计上不能做到一个网页把所有要打印的内容都容纳进来, 例如要打印10万个客户的账单,账单的数据在服务器的数据库中
                  这种需求实际上是通过循环多次载入页面实现的,你可以动态载入动态页面来实现,在我们的四方在线软件里面就有一个按月打印凭证的功能,就是这样的一种应用方式。
                 具体实现如下:

 //假设当前页面为:thispage.jsp       
  1. //利用javascript ,打印完成后自己载入下一页       
  2. //在页面中引入PAZU打印控件后,参考一下javascript       
  3. window.onload=function(){       
  4.    //先对页面参数进行设置       
  5.   pazu.TPrinter.header="";       
  6.    //其他设置,这里省略....       
  7.    //执行打印,打印的时候注意不能预览,也不能提示用户选择打印机,而是让pazu直接输出到打印机       
  8.   pazu.TPrinter.doPrint(false);       
  9.     //延迟一点时间,让页面重新载入下一页       
  10.   setTimer("printNextPage();",1000);       
  11. };       
  12.       
  13. function printNextPage(){       
  14.     window.location.href="thispage.jsp?pageid=NextPage";       
  15. }   

这种方式就很好的解决了大数据量后台分页打印的问题。不过调用IE自身的控件还不行,因为上面说的那个问题,会弹出对话框让选择打印机。还好四方有这个功能,真的是挺不错的。写这篇文章一方面为了跟大家技术交流下,另一方面就是为了四方的免费授权。。。呵呵,就当免费帮四方做广告了,不过它提供这个方法确实不错~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值