现在很多工程里面用到的iText都是2.*版本或者是1.*,而最近新下载的iText是5.0.2版,用iTextAsian.jar以后会抛一个“ Font 'STSong-Light' with 'UniGB-UCS2-H' is not recognized ”异常出来,按照网上的解决方法,将这个jar文件中的包名称修改了一下,然后重新打包了一下,方便大家使用。
iText 5是什么
iText是一个能够快速产生PDF文件的java类库。iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的。它的类库尤其与java Servlet有很好的给合。使用iText与PDF能够使你正确的控制Servlet的输出。
iText5.0解决中文输出的问题
最近研究PDF的生成,用到了iText。在网上,大多数人用的都是iText2.1,并且配合iTextAsian.jar来解决中文输出的问题。
但是,将iTextAsian.jar和iText5.0放在lib目录下,利用以下语句:
Java代码
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。






















大小: 8KB
大小: 89.5M
大小: 304.3M
终端仿真器 SecureCRTv7.1.1.264 最新版
串口调试小助手1.3 免费版
WinHex 十六进制编辑器v20.2 SR-5 绿色中文注册版
小旋风ASP服务器安装版
16进制转换工具V1.0 中文绿色版
Adobe AIRV33.1.1.932 官方最新版
github离线安装包64位版V2.9.11官方最新版(github desktop)
MSDN Library Visual Studio 6.0(VC、VB、VF、VJ)中文版win32开发人员必备
版本控制软件(SourceTree)v3.4.6 官方最新版
Memory Analyzer (MAT)V1.01 免费绿色版
Delphi Distillerv1.85绿色版
IBM内存检测工具(IBM Thread and Monitor Dump Analyzer for Java)V4.3.3 绿色版
.NETv3.0 可再发行组件包
一键安装JSP环境安装版
slave4j(基于eclipse插件的java代码生成器)V1.0.0 正式版
Auto DebugProfessional 5.6.5.18 中文绿色版
Understand For C++V1.4.319英文安装版