1. 程式人生 > >itext-2.1.7.jar和itextasian-1.5.2.jar 在 maven 專案依賴不上。問題解決。

itext-2.1.7.jar和itextasian-1.5.2.jar 在 maven 專案依賴不上。問題解決。

問題描述:java 匯出 PDF 檔案 遇到報錯

Exception in thread "main" com.lowagie.text.DocumentException: Font 'STSong-Light' with 'UniGB-UCS2-H' is not recognized.

原因:

 iText5.x版本以上中的font和encoding檔案都是從String RESOURCE_PATH = "com/itextpdf/text/pdf/fonts/"載入的,而老itextasian.jar的包名是com.lowagie.text.pdf.fonts, 包名不一致導致路徑錯誤,。

解決方案:

1、不要使用 itextasian-1.5.2.jar 了。自己下載一套所需字型檔案,比如宋體 SIMSUN.TTF。 要是 .TTF 檔案。其他檔案好像不能讀取。把檔案放到 根目錄下。

2、把建立 font 的方法 改造為下面這行即可。

BaseFont bfChinese  = BaseFont.createFont("/SIMSUN.TTF", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
3、這樣的做的好處是不用 上線的時候再通過 Linux 系統 修改字型設定。