iText默認不支持亞洲語言,導致iText生成中文出現問題,一般都是中文內容不能出現在pdf上,這是因為沒有中文字體的原因.
要讓iText支持中文,需要兩個jar包:
iText包:itextpdf-5.3.5.jar(這里用的是5.3.5)
iText語言包:iTextAsian.jar
要使iText能夠輸出中文,首先需要創建一個字體對象,代碼如下:
// 產生PDF字體 public static Font setChineseFont() { BaseFont bf = null; Font fontChinese = null; try { bf = BaseFont.createFont("resources/SIMKAI.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); fontChinese = new Font(bf, 12, Font.NORMAL); } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return fontChinese; }
上面的SIMKAI.FF是字體文件,可在C:\\WINDOWS\\Fonts下找到,我這使用的是相對路徑,所以就在項目根目錄創建了一個resources目錄用來存在項目資源。
到這里,配置中文字體Ok,只要在使用iText生成pdf內容時,將上述方法返回的Font對象傳入即可。
以下是pdf添加段落,為段落制定字體的代碼:
/** * setChineseFont()是上面創建字體的方法 */ doc.add(new Paragraph("太極~~", setChineseFont()));
這樣,中文輸出就OK了。