Asp.net

從網頁列印條碼標籤

  • November 12, 2015

我正在開發一個 ASP.Net Web 應用程序,該應用程序必須在標準 Avery 樣式的標籤表上列印動態創建的標籤(一種特定的尺寸,所以只有一種整體佈局)。標籤具有可變數量的行 (3-6),可能包含文本行或圖形條碼圖像。

我繼承的第一個剪裁使用等寬字型來減少格式問題,但這不允許足夠的文本適合標籤,客戶不滿意。基本上它是格式化的文本。

我的下一個版本使用 TABLE、DIV、CSS 和一些 JavaScript 計算來使用比例字型格式化標籤。它仍然需要一些調整(使用者必須正確設置列印邊距並關閉列印頁眉和頁腳),但它似乎工作。

然而,不同的列印機如何呈現文本似乎存在一些差異(WYS 不是 WYG),所以即使我們使用至少兩種不同的列印機(噴墨列印機和雷射列印機)在不同的瀏覽器上進行測試,一些使用者的標籤不要排隊。可以通過調整頁面設置對話框上的邊距來調整輕微的邊距變化,但更難的問題是標籤間的間距可能會偏離一英寸的一小部分,所以如果第一個標籤居中很好,通過頁面末尾標籤文本和圖像已從標籤的頂部或底部爬出。

我們即將切換到生成 Word、Excel 或 PDF 輸出,這將需要相當多的開發時間,並且可能會在列印過程中添加額外的步驟。

那麼,是否有人對如何在不同類型的列印機上精確呈現 HTML/CSS 佈局有任何建議?我真的不在乎換行符/分詞符是否有點不同,但我需要能夠可預測地定位每個標籤區域的左上角。

現在,標籤在表格中順著頁面向下流動,我們一直在調整單元格和內部 DIV 的框模型,以使它們具有統一的高度。我懷疑使用每個元素的絕對定位可能是最好的答案,但由於標籤元素的 ASP.Net 生成,這也會很棘手。如果我確定這會起作用,我寧願嘗試它,也不願放棄我們必須採用不同的生成方法的所有東西。

輕微更新:現在我正在做一些絕對定位的測試 - 只設置包含塊元素的頂部和左側座標。到目前為止,頁面上的偏移量(頁邊距、紙張對齊方式等)有細微的變化,但所有測試的瀏覽器和列印機都將元素放在相對於彼此的正確位置***。***我很欣賞 PDF 提示,但有人知道以這種方式使用絕對定位的其他“陷阱”嗎?

更新: 作為記錄,我使用 iTextSharp 重寫了標籤列印部分,它執行良好 - 絕對是將來這樣做的方式……

忘記 HTML 並製作 PDF。HTML 列印非常多變——不僅跨瀏覽器,而且跨同一瀏覽器的不同版本。PDF更容易。

即使您使用一個瀏覽器/字型設置/列印機/月相完全正確,它也將是您必須維護的最脆弱的東西。無論您認為製作 PDF 需要多長時間(而且這並不難,因為那裡有一些免費的庫),HTML 最終會花費您更多的時間。與 Word 文件相比,PDF 閱讀器被廣泛部署和列印更一致。

引用自:https://stackoverflow.com/questions/164197