最近接到一個需求,要求實現自動打印功能,一般網頁打印pdf需要借助瀏覽器的pdf組件,而且還要彈出打印窗口,再點擊打印才能實現。
那么如何實現自動打印了,從點擊自己網頁上3次縮減到點擊一次了?
一.實現思路:
1.讀取本地打印機服務
2. 服務端打印肯定不行需要一個客戶端
3.應用程序需要和本地打印服務通信,發送不同的打印指令
本想自己用Python寫一個打印控件的,但是時間來不及啊。。
二.采用技術知識
(以自動打印pdf為例)
- java操作文件流
- javascripte
- pdfjs
- Lodop打印控件 http://www.lodop.net/
三.技術細節
- 關於lodop預覽打印是開源免費,但是靜默打印是需要收費的,直接使用靜默打印會在打印紙張最下面出現水印,我們只需要將打印機紙張大小就可以將水印打印在無效位置,這樣在打印的結果上就不會出現水印了
- pdfjs使用版本不能太高,我這里使用 1.4.137。ps:如果找不到對應版本請與評論與我聯系,我分享給大家
四.上代碼
一.后端核心方法主要是將pdf文件轉成base64編碼
二.前端核心代碼
1.在html文件body需要插入
2. 需要在html頁面引入lodop打印js,pdfjs
3.發送ajax請求向后端返回pdf文件流,通過pdfjs繪制pdf成圖片可以進行屬性調節,進而調用print靜默打印