當微軟正黑體遇上 IE 9 列印時可能發生的問題(一點通系列 - MVP 撰寫)

關於作者:

本文由微軟最有價值專家 MVP 陳葵懋 提供。微軟十分感謝 MVP 主動地將他們的經驗與上百萬名其他技術使用者交流。MVP 陳葵懋 同時也將此篇文章放在他的部落格內,歡迎您按 此處  瀏覽 MVP 陳葵懋更多的技術文章、經驗分享與觀點。

問題的來龍去脈

使用者反應用 IE 9 進行紙張列印功能時,在連續列印多張的情況下,第六筆資料後會開始發生漏字現象,而且漏字的情況是隨機並沒有固定在哪一個位置,此外漏字的字數也不固定。

該頁面是以 ASP.NET 程式搭配使用者查詢條件,由資料庫取出資料後,組成 HTML Tag 輸出於另一個頁面上,每一筆資料一頁。

[實體紙張列印 - 正常版]




[實體紙張列印 - 發生漏字]




問題的發生原因

(1)測試其它 Browser 是否有相同問題,實測結果 IE7、IE8、Chrome 均正常。

(2)懷疑是否為 IE 版本文件解析的問題,因此嘗試以強制限定文件解析採用 IE 8 的方式來測試,但問題依舊。

(3)嘗試把輸出後的 ASPX 網頁直接以 render 後的 HTML 原始碼,另存為一份 HTML 網頁檔,再用IE9開啟後執行列印,結果不會有問題。

由於單純的 HTML 頁面輸出跟由程式去 Render 出來的頁面,差別在於套用的 CSS,因此試著把原本程式中套用的 CSS 先拿掉,則列印正常不會漏字,至此可以確認問題應該發生在 CSS 樣式,而 CSS 內容僅設定字型及字體大小。

問題的解決方法

進一步測試 CSS 內容後,發現原先的字型是『微體正黑體』,在改為新細明體及細明體,分別再進行測試,其結果列印均已正常。

由於目前並無法確定是否為『微體正黑體』字型中的缺陷而造成此現象,而根據其它有關『微體正黑體』字型在網頁開發上所見問題(請參閱其它相關資訊) ,可得知由於『微體正黑體』字型在 IE 9 瀏覽器上可能引起類似現象,因此目前較建議的做法為請調整改用其它標準字型,例如:新細明體或標楷體等標準字型。

請讓我們知道

請讓我們知道 還滿意我們寫的內容嗎?無論您是遇到了以下任何一種情況:
「太好了!問題解決了。」
「問題沒有解決,我有更好的建議。」
都歡迎您利用本篇文章底部的意見調查表,寫下您寶貴的意見。也期待您的鼓勵,讓我們為您創造更多實用的技術文章。
內容

文章識別碼:2739753 - 最後檢閱時間:2014年5月19日 - 修訂: 1

Windows Internet Explorer 9, Microsoft ASP.NET 1.0, Microsoft ASP.NET 1.1, Microsoft ASP.NET 2.0, Microsoft ASP.NET 2.0 AJAX Extensions, Microsoft ASP.NET 3.5, Microsoft ASP.NET 4.0

意見反應