BS架构的打印功能 (转http://www.cnblogs.com/mzhanker/archive/2011/06/02/2067691.html)
2011-12-15 00:03
585 查看
一直以来,B/S下架构下的打印问题都是B/S系统开发中的难题,现有的WEB打印技术概括起来主要有如下三种:
1):使用Html模板,直接使用WEB浏览器的打印
2):转换成word,excel,pdf等格式后进行打印
3):利用ActiveX控件实现打印
对于以上三种,我个人一直倾向于使用PDF等格式后进行打印,原因如下:
第一种方案,很难精确定位,对于我所处的行业,分销零售,小票打印很难满足业务需求.对于第二种方案,为什么不采用word,excel,word好象java操纵api不多(注,我一直就没去关注这些),excel的api,无论用jxl,还是POI,也是很难精确定位的。第三种方案,还要使用其它语言,写activeX控件,而且写的控件的扩展性和功能性,都不可确定,
使用pdf打印的功能的开源技术叫itext,它是一个比较底层的api,如果结合你的数据库设计,可以通过配置,随心所欲地打印.我个人就把它封装成了一个组件,业务功能访问只要一个url即可。
Itext网上的demo很多,有一点小经验,如果pos打印的时候,需要直接输出到打印机里,而不是先弹出pdf的界面,再点打印。需要使用pdf7.0老的版本,同时在打印的时候要加入如下的代码:
StringBuffer javascript = new StringBuffer();
javascript.append("var pp = this.getPrintParams();pp.interactive = pp.constants.interactionLevel.automatic;this.print(pp);");
writer.addJavaScript(javascript.toString());
下面截几张图:
本博客均为原创,转载请注明出处.
分类:
Java
一直以来,B/S下架构下的打印问题都是B/S系统开发中的难题,现有的WEB打印技术概括起来主要有如下三种:
1):使用Html模板,直接使用WEB浏览器的打印
2):转换成word,excel,pdf等格式后进行打印
3):利用ActiveX控件实现打印
对于以上三种,我个人一直倾向于使用PDF等格式后进行打印,原因如下:
第一种方案,很难精确定位,对于我所处的行业,分销零售,小票打印很难满足业务需求.对于第二种方案,为什么不采用word,excel,word好象java操纵api不多(注,我一直就没去关注这些),excel的api,无论用jxl,还是POI,也是很难精确定位的。第三种方案,还要使用其它语言,写activeX控件,而且写的控件的扩展性和功能性,都不可确定,
使用pdf打印的功能的开源技术叫itext,它是一个比较底层的api,如果结合你的数据库设计,可以通过配置,随心所欲地打印.我个人就把它封装成了一个组件,业务功能访问只要一个url即可。
Itext网上的demo很多,有一点小经验,如果pos打印的时候,需要直接输出到打印机里,而不是先弹出pdf的界面,再点打印。需要使用pdf7.0老的版本,同时在打印的时候要加入如下的代码:
StringBuffer javascript = new StringBuffer();
javascript.append("var pp = this.getPrintParams();pp.interactive = pp.constants.interactionLevel.automatic;this.print(pp);");
writer.addJavaScript(javascript.toString());
下面截几张图:
本博客均为原创,转载请注明出处.
分类:
Java
相关文章推荐
- ArcGIS 9.3中的一些新功能 来自http://www.cnblogs.com/luspa/archive/2009/09/17/1568814.html
- JS间隔性滚动代码[修正增加了部分功能] 【转:http://www.cnblogs.com/robot/archive/2008/04/09/1144568.html】
- xampp环境下,配置Zend Studio调试php(XDebug) 转摘:http://www.cnblogs.com/tuyithief/archive/2011/06/02/2068431.html
- Unity3D界面功能操作讲解【转http://www.cnblogs.com/fortomorrow/archive/2012/10/28/unity01.html】
- _beginthread http://www.cnblogs.com/whiteyun/archive/2011/06/02/2067742.html
- JS间隔性滚动代码[修正增加了部分功能] 【转:http://www.cnblogs.com/robot/archive/2008/04/09/1144568.html】
- C#使用命令行方式实现Ping简单功能 http://www.cnblogs.com/kevinton/archive/2007/06/28/798581.html
- http://www.cnblogs.com/phinecos/archive/2008/09/03/1282747.html
- 原文地址:http://www.cnblogs.com/kuangbin/archive/2011/07/26/2117636.html
- 触发器入门 《转》http://www.cnblogs.com/ivy/archive/2008/06/11/1217613.html
- absolute fixed效果 复制网页打开就是代码 http://www.cnblogs.com/0banana0/archive/2011/05/25/2056643.html
- jQuery Ajax 实例 全解析http://www.cnblogs.com/yeer/archive/2009/07/23/1529460.html
- http://www.cnblogs.com/peterzb/archive/2009/07/19/1526555.html
- 【原作者:吴秦(Tyler)http://www.cnblogs.com/skynet/archive/2010/04/12/1709892.html】Android开发之旅:环境搭建及HelloWo
- http://www.cnblogs.com/yungboy/archive/2010/05/27/1745268.html
- 数据验证(模拟检测用户名是否存在) http://www.cnblogs.com/beniao/archive/2008/03/29/1129141.html
- Javascript中的陷阱大集合【译】(转自:http://www.cnblogs.com/sxwgf/archive/2011/11/14/javascript-gotchas.html)
- Js+XML 操作 http://www.cnblogs.com/skylaugh/archive/2006/09/15/505393.html
- http://www.cnblogs.com/zhbsh/archive/2013/04/22/3035477.html
- 消息总线设计系列之 - 调停者模式 --拷贝自http://www.cnblogs.com/netcasewqs/archive/2008/05/16/1200926.html