淺談報表工具的打印方案

報表工具除了基本的繪製報表,完成數據呈現(也就是讓終端用戶能看到報表),打印也是報表的基本功能之一。

當前報表工具很多,可以按地域、開閉源等劃分,包括有傑表、水晶、Style Report、birt、ireport、潤乾、FR 等等,各家打印方式也各不相同,但總的來說,有 activex、applet、flash、pdf 等打印模式。

對比來看:

Activex 打印:主要是在 c/s 架構時代使用,當時發揮了極大作用的,處理得好且穩定,但隨着 web 報表的普及,這種打印控件幾乎沒人採用了。

Applet 打印:目前常用報表工具基本都支持,比如上面提到的廠商。Applet 是 java 實現,再加上當前多數報表工具也基於 java 開發,所以兼容性較好,實現起來也方便,打印速度相比其他要快。不過,客戶端打印的時候需要有 java 運行環境(即 jre),需要客戶端安裝,這個可能給終端用戶來說帶來點小麻煩,當然多數廠家都已經支持自動下載安裝 jre 了,也算是做出了彌補。

Flash 打印:此方式在客戶端點擊打印後會觸發 flash player 插件,插件幾乎瀏覽器都自帶,一般不會給終端帶來安裝的麻煩。打印的基本原理大概都是報表工具算完報表成表格,給到 flash,flash 再按照給的表格再畫出來,然後傳到打印機打印。不過 flash 插件開放接口相對少,不如 applet 打印功能豐富,比如選奇偶頁打印、縮放打印等。

Pdf 打印:一般情況下都是從報表服務器端下載一個 pdf 文件流,然後調用 Adobe Reader,從而利用 Adobe 實現打印功能。也因此要給瀏覽器安裝對應插件,一般情況下系統安裝 Adobe Reader 後會自動給 IE 瀏覽器安裝對應插件。國外的 java 報表工具用此方式打印比較廣泛,比如 style report、jasperreport 等,當然國內的報表工具也基本都支持該方式了。

關於以上幾種打印方式,在web 如何實現精準打印印中都有詳細的說明

總結來說,各種打印方式差異在藉助的插件不同,實現原理也不同,各有各的優缺點。另外,每個方式也有不同的限制:applet 控件已被多數非 IE 內核的瀏覽器禁止使用,比如 chrome、firefox,所以更適合 IE 內核瀏覽器;Flash 本身就有缺陷,所以也在陸續被限制,功能比其他方式要簡單,沒太有未來;pdf 目前在兼容性上還比較好,如果終端瀏覽器使用類型較多的話,也是不錯的選擇,但功能上又沒有 applet 豐富。所以,選擇具體打印方式時可綜合考慮了。

另外還整理了一些關於打印相關的問題,想了解的可以參考。
如何實現報表直接打印需求
單據套打
如何實現批量打印
報表續打功能實現

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章