在B S應用系統的開發中,經常會遇到表單列印的需求,特別是在OA、ERP型別的企業運營管理系統中,列印的需求非常普遍,但Web應用的列印一直是乙個難題,特別是在完成標籤列印(如包裹票據、 貨運標籤等)、票據列印(如零售收據)難度大,難點在於如何列印需要準確設定到標籤、票據中的內容,精確控制分頁,實現高速連續列印。
捲筒紙列印的技術實現方案和專案的實際效果分別介紹,希望對大家有所幫助。
實現 Web 列印技術的方法有很多種,以下是四種常見的方法:
一使用瀏覽器的列印功能選單或 Windowsprint()列印。 這是最簡單的解決方案,不需要對瀏覽器進行任何增強。 但是,這種方法存在許多問題,包括:
1)如果不能準確對齊邊距和列印文字,經常會發現列印樣式非常混亂,因為印表機使用的是mm單位,而不是我們頁面上常用的px,有些樣式在列印時不會生效;
2)會有頁尾頁首干擾;
3) 無法準確分頁。瀏覽器一般根據使用者設定的頁面大小和網頁內容來決定分頁位置,程式設計師很難控制。
4)無法解決連續列印問題。例如,不要只列印一張票證,而是連續列印多張票證。
第二用@media列印查詢控制繪圖樣式因為印表機是以公釐為單位的,而不是我們通常在頁面上使用的px,所以我們通常需要重新設計列印樣式,這是直接從瀏覽器列印功能的增強版本。 在CSS中,我們可以使用@media列印規則來設定不同型別下的樣式,以實現對HTML文件輸出和列印的控制,如設定紙張尺寸、紙張垂直和水平方向、列印邊距、分頁等。 使用這種方案的優點是成本小,不需要任何外掛程式,跨平台非常好。
基於此類技術的開源元件包括:hiprint、vue-plugin-hiprint、vue-print-nb、vue3-print-nb、printthis 等。
這種實現列印的方式也存在缺點:
1)頁面開發要求比較詳細繁瑣,需要在控制列印的地方使用@media列印的CSS樣式,不同型別的瀏覽器下列印效果可能會有所不同。
2)與PDF和Office的列印功能相比,列印精度仍有一定差距,但對於大多數企業來說已經足夠了。
三.用用於列印的瀏覽器外掛程式在瀏覽器中安裝 ActiveX 控制項以實現列印。 這種方案在IE時代非常流行。 此方案是乙個控制項,票證的資料不再以 HTML 呈現,而是以 ActiveX 呈現。 該方案的優點是列印精度高,分頁可控性強。 但缺點也很明顯,那就是ActiveX控制項只能在Internet Explorer瀏覽器下使用,而在目前Firefox、Chrome、Edge成為主流的情況下,其應用範圍大大縮小。 此外,ActiveX控制項需要在每個客戶端上安裝和維護,客戶端上經常會出現莫名其妙的問題,這與作業系統和瀏覽器版本有關,運維成本相對較高。
四轉換為 PDF 文件進行列印由於 PDF 是一種格式檔案格式,因此一旦生成,它在您閱讀和列印的任何地方看起來都是一樣的。 基於PDF轉換的列印方案有兩種型別:前端轉換和後端轉換。
1)前端轉換為PDF進行列印。JSPDF 是乙個開源元件,基於 HTML5 的客戶端解決方案,它使用僅限瀏覽器的前端技術生成用於各種用途的 PDF 文件,以便您可以將 ** 或網頁轉換為 PDF 檔案,然後列印 PDF 檔案,然後實現列印需求。
2)後端轉換PDF進行列印。通過後端文件轉換元件,將頁面內容轉換為PDF文件,並在前端列印頁面內容。 專業的印刷產品往往配備印刷設計師,實現精準的印刷版面設計,然後將其轉換為PDF進行輸出和印刷。 開源元件包括 wkhtmltopdf、itext 等。 這種方案的缺點是開發印刷設計師的成本高,整體技術複雜度大。
low**平台採用第二種列印方案,整合vue-plugin-hiprint列印元件,實現列印模板的視覺化設計,支援各種常見型別的列印需求。
vue-plugin-hiprint 提供了 Web Print Designer 功能,是一款具有直觀使用者介面的 ** 列印模板設計工具,方便非專業開發人員輕鬆建立高質量的列印模板,廣泛應用於各種應用場景,如發票列印、標籤列印、報表生成等。 以下是網頁列印設計器的一些主要功能:
1)模板建立:網頁印刷設計師通常會提供一系列預設模板,使用者可以直接使用或基於這些模板進行修改。使用者還可以從頭開始建立新的列印模板。
2)元件和元素:網頁列印設計器允許使用者新增各種元件和元素,如文字框、影象、條形碼等。 這些元件和元素可以輕鬆調整大小、定位和樣式。
3)資料繫結:Web Print Designer支援資料繫結,這意味著使用者可以將資料來源(如資料庫、API等)與模板中的特定元件相關聯。這樣,當資料發生變化時,列印輸出也會相應地更新。
4)預覽和測試:網頁印刷設計師通常提供預覽功能,允許使用者在正式列印之前檢視設計的外觀。這有助於確保設計符合要求並進行必要的調整。
列印模板管理:
列印模板設計:
準確列印發票定位: