在页面直接从后台获取到的数据生成条码进行打印处理,不用存储生成的条码图片,能够节约大量资源
1.在页面引用js问文件:如下(使用此轻量级插件,用于打印表格,打印整体页面可以直接使用window.print();即可)
<script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="js/jquery.jqprint-0.3.js"></script>
2.编写需要打印的区域
<div class="printDiv" style="text-align: center;">
<div>
<img src='"+Path+"/barcode?data=11111&type=Code128A&width=1&height=95'>
<div style='font-size: 18px;'>Test</div></div><br>
</div>
3.引用打印功能
function printall(){
$(".printDiv").jqprint();
}
//调整
$("#printDiv").jqprint({
debug: false, //如果是true则可以显示iframe查看效果(iframe默认高和宽都很小,可以再源码中调大),默认是false
importCSS: true, //true表示引进原来的页面的css,默认是true。(如果是true,先会找$("link[media=print]"),若没有会去找$("link")中的css文件)
printContainer: true, //表示如果原来选择的对象必须被纳入打印(注意:设置为false可能会打破你的CSS规则)。
operaSupport: true//表示如果插件也必须支持歌opera浏览器,在这种情况下,它提供了建立一个临时的打印选项卡。默认是true
});
4.导入jar包barbecue-1.5-beta1.jar,放入工程下的 WEB-INFO\lib目录里。右键导入即可
5.在工程的web.xml里增加 servlet映射文件
<servlet>
<servlet-name>BarcodeServlet</servlet-name>
<servlet-class>net.sourceforge.barbecue.BarcodeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BarcodeServlet</servlet-name>
<url-pattern>/barcode</url-pattern>
</servlet-mapping>
6.在需要打印的表格内添加如下代码,此文直接在class为printDiv的Div中添加即可
<img src="<%=request.getContextPath()%>/barcode?data=123456789&type=Code39&width=1&height=20">
7.参数解释
data=123456789 要生成条形码的字符
type=Code39 表示是code39码 ,条形码类型
width 表示生成的条形码的宽度
height=20 表示生成的条形码的高度
8.可能出现的问题
(1).使用jquery.jqprint-0.3.js轻量级插件,在需要打印的Div内部无法使用#{}等el表示式,如若使用转义符\也只是一个字符串,而无法获取到应有的数值。
解决方法:例:应用场景,可以使用ajax发送请求,获取其返回到的数据,在此使用append进行添加即可。先生成条码,然后后进行打印处理。
以上就是本文的全部内容,希望对大家的学习有所帮助。