网络实现大量打印

  

web实现大量打印

  

问题描述:

  

在B/S项目中需要打印大量的图片,我们使用window.print,但是当数据量大至上万的时候,将图片加载出来需要一些时间,加载出来之后打印,如果用户关闭了打印界面会导致打印页的缺失。

  

解决思路:

  

1.,使用ActiveX控件,非即使用Flash插件。这种思路不同的浏览器开发方式不一样,IE/FF/GROME

  

2。开发一个exe,客户端安装到本地服务,使用HTTP通讯方式。通过JS发送HTTP请求给本地的服务,本地服务起一个小型的HTTP服务器接收请求,然后返回数据,JS解析,显示在UI上。比如将打印的参数传值到本地服务,本地服务去调用打印机,使浏览器资源得到释放。

  

我们使用第二种思路。

  

尝试了以下方法:

  

1. httpprinter   

采用原因免费,当地费用很便宜的,而且不限制时间和数量。还可以购买源码的。

  HttpPrinter.com

  

2。葡萄城的ActiveReports

  

中有B/s端的打印使用window.print实现

  https://demo.grapecity.com.cn/ActiveReports/ASPNET/ControlExplorer/Viewers/Default.aspx?category=1001&action=14

  

另外有C/S端的打印,无法与浏览器交互,但是可以去改进

  https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=48785&extra=page%3D1

     <李>   

Lodop分为收费版与免费版

  

(1)使用Lodop插件,需要客户端安装一个服务,服务的端口默认是8000年或18000年

  

(2)如何购买和使用打印控件的Lodop的注册号

  李      http://blog.sina.com.cn/s/blog_721e77e50100nfzs.html

  

(3) Lodop样例演示

  http://www.lodop.net/LodopDemo.html

  

考量问题:

  

(1)免费版有水印

     <李>   

JCP分为收费版与免费版

  

安装程序需要替换

  http://printfree.jatools.com/

网官   

考量问题:

  李      

免费版只适合于IE浏览器

  

图片需要渲染到页面,打印时释放浏览器资源可以做其他操作

  

收费版jatoolsPrint支持大部分浏览器

  

5. jquery打印

  

底层是window.print方法

  

最后考量,我们决定将的ActiveReports中的C/S端程序打包成EXE,利用自定义协议实现打开本地EXE服务,使用HTTP方式实现浏览器与本地服务的通讯。

网络实现大量打印