iText5.0解决中文输出的问题

本文解决了一个关于使用 iText5.0 生成 PDF 文件时遇到的中文显示问题。作者发现 iTextAsian.jar 不适用于 iText5.0 的包结构,通过修改 iTextAsian.jar 的包名使其与 iText5.0 包名匹配,成功实现了中文的正常输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

起因:

 

最近研究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。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值