现象:
iText输出时中文不显示或乱码
原因:
中文字体及编码未加载或设置。
解决:
1.使用最新的iText5.x.jar包
2.加载iTextAsian.jar至项目中。需注意:iText5.x.jar中的包路径与老版本不同,现已改为com.itextpdf.text.pdf包。其在查找字体时的路径也改为com.itextpdf.text.pdf ,因此需检查iTextAsian.jar中路径是否正确。
3.代码中:
(1)在使用FontMapper时,应使用
AsianFontMapper mapper = new AsianFontMapper("STSong-Light","UniGB-UCS2-H");//解决生成pdf时中文问题,或改为其它字体及编码
(2)手动向pdf中输出时,设置
BaseFont baseFontChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); Font fontChinese = new Font(baseFontChinese , 12 , Font.NORMAL); Paragraph graph = new Paragraph(content , fontChinese); // <<---