WEB打印难题

一调用纯javascript打印
这种方式也就是调用window.print()的方法,其会调用浏览器自带(好像仅限于IE)的打印功能,但其可调用的接口极其少,除了一键打印,其余像页眉、页脚、边距、宽度、纸张等基本功能都无法通过代码来配置实现。这种方式对于打印稍微有点要求的项目都会被废弃,因为其可配置型实在太差。


二是用js+ActiveX

       这种方式是目前市场上是用较为广泛的一种,由于需要通过安装ActiveX插件与JS进行交互而达到的一种可配置打印的效果。正由于其需要安装插件,所以其稍微有点违背WEB项目的初衷,其跨平台性和维护性的成本则为大大增加。我也尝试用使用目前市场上“ScriptX”的插件进行开发,但几经折腾免费版发现本机可以正常使用,一旦远程访问则出现问题,后来发现貌似是需要License才能实现远程访问,最后决定放弃。

①有人这么说:ScriptX的免费版本好点,已经能满足大部分的需求. 
MeadCo's ScriptX控件有两种使用方式,一种是做为免费版本使用,一种是做为收费版本使用,免费版本支持的功能要少些,不过最重要也是最常用的页面设置,它还是提供的,因此使用免费版本即可。不过这两个版本用的都是同一个cab文件,只不过在代码设置中有一些不同heets

②还有人推荐:print css 

这是一种最理想的实现web套打的方法。这种方法通过在html文档中,嵌入打印相关的css样式,来实现对html文档输出打印的控制,比如设置纸张大小,纸张纵 横方向,打印边距,分页等。显而易见,这种方式成本小,不需要下载任何插件,而且跨平台性非常好。print css推出已经有些时日,但遗憾的是,至今没有一个厂商的浏览器很好地实现了这些标准,这使得程序员目前还不能利用print css进行实际的开发。关于打印css,参见http://css-discuss.incutio.com/?page=PrintStylesheets

        ③收费不错的:jatoolsPrinter(杰表.打印控件)


三 、采用Applet方式 
采用Applet方式,分页或精确打印,都可以做到完美,但缺点也很明显,表现在: 
安装Applet成本巨大。需要下载十几M的文件。 
打印报表时,需要重新向服务器检索数据,效率低。因为Applet方案,一般采用html方式呈现数据,打印时Applet必须向服务器检索同一张票据的数据,看上去,是打印了当前页的票据,实际上,Applet根本不会用当前html页的数据来打印,而是向服务器下载数据到Applet中来打印。也就是说,打印的话,必须两次请求,一次html呈现,一次用来打印。 
  

不能解决连续打印。比如,不是仅打印一张票据,而是连续一次打印若干个票据。 
  不能解决打印机设置问题,如存在多台打印机时,总是需要手工选择,打印到哪一台打印机。 
不能解决连续打印。比如,不是仅打印一张票据,而是连续一次打印若干个票据。 
  不能解决打印机设置问题,如存在多台打印机时,总是需要手工选择,打印到哪一台打印机。 
  市场上java类的报表工具,一般推荐Applet方式来实现打

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值