web打印技術方案
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
Web打印技術的實現方案有多種,以下是其中四種常見的方案: 一、使用瀏覽器的打印功能菜單或windows.print()打印。這是最簡單的方案,不需要對瀏覽器進行任何擴充。但是,這種方案存在很多問題,包括: (1)不能準確對齊邊邊距及打印文字,常常會發現打印的樣式十分混亂,因為打印機采用的是 mm 單位,而不是我們頁面常用的 px,同時有些樣式在打印時也不會生效; (2)會有頁腳頁眉干擾; (3)不能精確分頁。瀏覽器一般是根據用戶設置的頁面大小,web頁面的內容多少,來自行決定分頁位置,程序員很難控制。 (4)不能解決連續打印。比如,不是僅打印一張票據,而是連續一次打印若干個票據。 二、使用@media print媒體查詢控制打印樣式。因為打印機采用的是 mm 單位,而不是我們頁面常用的 px,所以一般我們都需要為打印樣式重新進行設計,這種方法是直接使用瀏覽器打印功能的增強版本。該方案通過在html文檔中,嵌入打印相關的css樣式,在CSS中,我們可以使用@media print規則來設置不同媒體類型下的樣式,來實現對html文檔輸出打印的控制,比如設置紙張大小,紙張縱橫方向,打印邊距,分頁等。使用該方案的優點是,成本小,不需要下載任何插件,而且跨平臺性非常好。 基于此類技術實現的開源組件有:hiprint、vue-plugin-hiprint、vue-print-nb、vue3-print-nb、printThis等。 這種方式實現打印也有短板: (1)對頁面開發要求比較細節和繁瑣,需要在控制打印的地方使用好@media print的css樣式,在不同類型的瀏覽器下可能會打印的效果不一樣。 (2)跟使用pdf和office的打印功能相比,打印精準度上還是有一定差距,不過對于大部分業務來說也夠用。 三、 使用瀏覽器插件實現打印。在瀏覽器中安裝ActiveX控件實現打印。該方案在IE時代非常流行。這種方案就是下載一個控件,票據的數據不再以html方式呈現,而是呈現在ActiveX中。這種方案的優點是打印的精確度高,分頁的可控性好。但缺點也是很明顯的,就是ActiveX控件的只能在IE瀏覽器下使用,在當前Firefox, Chrome, Edge成為主流的情況下,其適用范圍大大減少。另外,ActiveX控件需要在每個客戶端安裝維護,經常出現客戶端莫名的問題,跟操作系統和瀏覽器版本都有關系,運維成本也比較高。 四、轉化成PDF文檔實現打印。由于PDF是一種版式文件格式,一旦生成以后在任何地方閱讀打印效果都是一樣的。基于轉化PDF實現打印有前端轉化和后端轉化兩種方案。 (1)前端轉化PDF實現打印。jsPDF 是一個開源組件,基于 HTML5 的客戶端解決方案,使用瀏覽器純前端技術用于生成各種用途的 PDF 文檔,這樣就可以把圖片或網頁轉化為PDF文件,然后打印PDF文件,進而實現打印需求。 (2)后端轉化PDF實現打印。通過后端的文檔轉化組件,把頁面內容轉化為PDF文檔,下載到前端進行打印。專業的打印產品往往會配有打印設計器,實現精準的打印排版設計,然后轉化成PDF進行輸出打印。開源的組件有wkhtmltoPdf、itext等。這種方案的缺點是開發打印設計器的成本較高,整體技術復雜都較大。 版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。 原文鏈接:https://blog.csdn.net/wxz258/article/details/135081590 該文章在 2024/1/27 11:46:13 編輯過 |
關鍵字查詢
相關文章
正在查詢... |