iText5.0解决中文输出的问题
程序员文章站
2022-04-08 14:00:52
...
起因:
最近研究PDF的生成,用到了iText。在网上,大多数人用的都是iText2.1,并且配合iTextAsian.jar来解决中文输出的问题。
但是,将iTextAsian.jar和iText5.0放在lib目录下,利用以下语句:
PdfWriter.getInstance(document, new FileOutputStream("123.pdf"));
BaseFont bfChinese = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H", false);
Font fontChinese = new Font(bfChinese);
document.open();
Paragraph par = new Paragraph("你好",fontChinese);
document.add(par);
。。。。。
结果会报错(已经解决了,忘了截图):
大意是:找不到资源包。
可是明明导入了呀?
峰回路转:
细心地查看了一下,iTextAsian.jar的包名:com.lowagie.text.pdf.fonts
而 iText5.0的Font的包名:com.itextpdf.text.pdf.fonts。
又对比了下iText2.1的相应的包名:com.lowagie.text.pdf.fonts
原来iTextAsian.jar对iText的扩展,是通过在相同的包空间下加入字体来解决的,然而,iText5.0的包空间命名与2.1有很大的差别。
解决办法:
呵呵,在winrar中,简单地修改下iTextAsian.jar的包名就可以输出中文了。具体就是,将lowagie的文件夹重命名为itextpdf。