java applet+jasperReport 实现web端打印
1.首先介绍下背景:
?? web端套打(精确打印)、针式打印机(批量走纸)
?? 相关的技术:struts2+jQuery easyUI+applet+jasperReport3.7.5,对相关技术不熟的自己去了解。
?? 注:本实践已经在项目中成功运用,且项目已经上线。解决了所有遇到的问题。
?????????由于时间仓促,又时隔一年,暂时只写个大概,请仔细研究代码,以后有时间再补充详细。
2.下面是applet程序源码,里面有打印预览和打印的方法。注意这个class最终是要与jasperReport提供的源码一起打到jar包里面的,jasperReport提供了applet打印的支撑,需要去下载它的源码,我用的jasperreports-applet-3.7.5。
?
?? 在webRoot下建立applet目录,将自己打的jar包和与之相关的jar放到里面。我里面放了这些:commons-collections-3.1.jar、commons-logging-1.0.4.jar、print.cer(给reportprint.jar签名时生成的)、reportprint.jar(里面包括自己的applet程序(JRPrinterApplet.class),还有jasperReport提供的支撑类)。注意这是必须的。
?
?5.实现上面的这些只是实现了applet+jasperReport打印的功能。实际运用中还会遇到其他问题。我将我暂时能想起来的遇到的问题列到下面:
?? A.? applet,控制台报:java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory。struts.xml里面缺少这句:<constant name="struts.objectFactory" value="spring"/>
?? B.? 客户端要安装jre这是必须的。如果数据量大会导致jre崩溃,需要配置jre内存大小。到底设置多大需要根据客户端机器配置决定。建议-Xms64m -Xmx128m