web 實(shí)現(xiàn)大量打印
創(chuàng)新互聯(lián)-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比田林網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式田林網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋田林地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。
問(wèn)題描述:
在B/S項(xiàng)目中需要打印大量的圖片,我們使用window.print,但是當(dāng)數(shù)據(jù)量大至上萬(wàn)的時(shí)候,將圖片加載出來(lái)需要一些時(shí)間,加載出來(lái)之后打印,如果用戶關(guān)閉了打印界面會(huì)導(dǎo)致打印頁(yè)的缺失。
解決思路:
1.IE,使用ActiveX控件,非IE,使用Flash插件。這種思路不同的瀏覽器開(kāi)發(fā)方式不一樣,IE/FF/GROME
2.開(kāi)發(fā)一個(gè)exe,客戶端安裝到本地服務(wù),使用HTTP通訊方式。通過(guò)JS發(fā)送HTTP請(qǐng)求給本地的服務(wù),本地服務(wù)起一個(gè)小型的HTTP server接收請(qǐng)求,然后返回?cái)?shù)據(jù),JS解析,顯示在UI上。比如將打印的參數(shù)傳值到本地服務(wù),本地服務(wù)去調(diào)用打印機(jī),使瀏覽器資源得到釋放。
我們使用第二種思路。
嘗試了以下方法:
1.HttpPrinter
采用原因 免費(fèi) ,OME費(fèi)用很便宜的,而且不限制時(shí)間和數(shù)量.還可以購(gòu)買(mǎi)源碼的。
HttpPrinter.com
2.葡萄城的ActiveReports
中有B / s端的打印使用window.print實(shí)現(xiàn)
https://demo.grapecity.com.cn/ActiveReports/ASPNET/ControlExplorer/Viewers/Default.aspx?category=1001&action=14
另外有C / S端的打印,無(wú)法與瀏覽器交互,但是可以去改進(jìn)
https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=48785&extra=page%3D1
Lodop分為收費(fèi)版與免費(fèi)版
(1)使用Lodop插件,需要客戶端安裝一個(gè)服務(wù),服務(wù)的端口默認(rèn)是8000或18000
(2)如何購(gòu)買(mǎi)和使用打印控件的Lodop的注冊(cè)號(hào)
http://blog.sina.com.cn/s/blog_721e77e50100nfzs.html
(3)Lodop樣例演示
http://www.lodop.net/LodopDemo.html
考量問(wèn)題:
(1)免費(fèi)版有水印
JCP分為收費(fèi)版與免費(fèi)版
安裝程序需要替換
網(wǎng)官 http://printfree.jatools.com/
考量問(wèn)題:
免費(fèi)版只適合于IE瀏覽器
圖片需要渲染到頁(yè)面,打印時(shí)釋放瀏覽器資源可以做其他操作
收費(fèi)版jatoolsPrint支持大部分瀏覽器
5.jquery打印
底層是window.print方法
最后考量,我們決定將的ActiveReports中的C / S端程序打包成EXE,利用自定義協(xié)議實(shí)現(xiàn)打開(kāi)本地exe服務(wù),使用HTTP方式實(shí)現(xiàn)瀏覽器與本地服務(wù)的通訊。