尝试利用PAZU进行Web打印的解决办法

尝试利用PAZU进行Web打印的解决办法

手上的事情是需要打印卷式发票,为了方便业务部门和研发部门的工作,利用现有的BS结构的系统来实现这个功能是最好的,打印还可以使用系统应用程序来实现。
由于是操作订单之类的数据,打印过程自然是越简单越好,一点即打的效果,web浏览器自带的打印功能是满足不了这个需求的,用JS来实现还是不能满足,要是JS能控制系统窗口直接就颠覆了。
web上可以利用ActiveX和Applet来实现这类功能,通过签名这些web程序可以实现我们想要的打印效果而且对打印内容的可控性也还是比较的好。
网络上这些打印的控件也还是很多,这次接触到的利用ActiveX的有jatools/scriptx/PAZU,还有Applet类型的jasperreport  。
这几个只有pazu和jasperreport 是免费的,其他的需要签发证书或者购买授权。

介绍完了,下面是PAZU的一些使用方法,很简单..
在需要打印的页面引入Object,就是PAZU的打印控件

 
 
  

这样在页面的对象里就有一个ID叫pazu的对象,剩下的配置都是用过JS来对这个对象的属性进行设置而进行的。
有页面基础就能都搞定,对于参数的设置可以考考PAZU的开发文档

下面是我用到的部分参数:

pazu.TPrinter. printerName = "EPSON TM-U220"

pazu.TPrinter.header="";
pazu.TPrinter.footer="";

pazu.TPrinter.marginLeft=18;
pazu.TPrinter.marginRight=0;
pazu.TPrinter.marginTop =0.2;

pazu.TPrinter.isZoomOutToFit= true;
pazu.TPrinter.isPrintBackground = false;
pazu.TPrinter.doPageSetup();
document.frames['printFrame'].focus();
//pazu.TPrinter.doPrint(false);

通过名称可以大概看出含义,即页面的四周边距、是否缩放和是否打印背景等
通过一些页面技术,比如嵌入的ifream可以方便的实现批量打印,这个是我的实现方法。
在列表页面使用jquery动态的载入iframe,然后刷新iframe的内容,实现批量的自动预览+打印。

用到了jquery、jquery-impromptu、一个需要载入的iframeContainer.jsp页面,以及一个打印的内容页面print.html

实现起来还是很简单的,这样间隔3秒的打印业务部门也比较好处理,来个带切刀的打印机在用上黑标发票,流程就没问题了。

留下回复