中文問題中文字出不來,是因為 iText 裡頭沒有中文字型。某些網頁上頭會說去下載 iTextAsian.jar 檔,然後 BaseFont bfChinese = BaseFont.createFont( "MHei-Medium", "UniCNS-UCS2-H", BaseFont.NOT_EMBEDDED ); Font fc = new Font(bfChinese, 14 ,0); 個人覺得太麻煩,而且裡頭字型也有限,在不想搞懂 cmap 跟 properties 的前提下,尋找簡單的方法 [遠目]。這個網頁上頭有這種寫法 BaseFont bfChinese = BaseFont.createFont( FONT_FILE_PATH, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED ); Font fc = new Font(bfChinese, 14 ,0); BaseFont.createFont() →TrueTypeFont.process →RandomAccessFileOrArray 的建構子,發現可以給 file:/ 、http:// 、https:// 、jar: 這幾種東西,另外還有 BaseFont.getResourceStream() ,不過那有點麻煩,就跳過。於是就這樣子搞吧 [奸笑]BaseFont bfChinese = BaseFont.createFont( "http://font.server/kaiu.ttf",BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED ); Font fc14 = new Font(bfChinese, 14 ,0); |
Java 3rd Lib. >