现象:

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); // <<---
posted on 2010-08-28 10:24  rickyxing  阅读(649)  评论(0编辑  收藏  举报