問題
ASP.NET 程式在預覽 DevExpress 報表後,列印或匯出 PDF 後,中文字全不見了。
為什麼中文字都不見了呢? 是因為英文作業系統的關係嗎? 可是 標楷體
有安裝了呀~
環境
作業系統: 英文版 Windows
程式: IIS, ASP.NET
報表: DevExpress 報表字型都是設定為 標楷體
字型: 標楷體(有將標楷體安裝進 %windir%/fonts 目錄)
解法
查看 Reporting in .net core not supporting chinese characters 是說 DevExpress 要將報表轉成 PDF 時,需要去找到它的字型,
如果找不到,那就不會把字畫出來,自然就看不見了。
同事在安裝字型後,也有重新開機過。
本來以為是因為 IIS Application Pool 的 載入使用者設定檔
沒有設定成 true ,
但同事查了一下是有設 true 的。
後來同事在OS中建立一個新的帳號,並在 Application Pool 設定那個 帳號 去執行,
報表列印或匯出 PDF ,中文字就可以正常呈現了。
猜想有可能是 Application Pool 帳號沒權限讀到 %windir%/fonts 目錄
。
或許可以試著在 %windir%/fonts 目錄
設定給 Application Pool 帳號讀的權限,
試看看是否一樣有效。
以上最後的解法,感謝同事 Eric 及 Jenny 的分享
參考資源
Reporting in .net core not supporting chinese characters
How to solve the problem of missing Chinese character when exporting report to PDF
Configure access permission to a folder for an IIS Application pool
一人不喝酒、二人不賭錢 : 志趣相同,嗜好相同,大家便會聚集在一起的。