您的位置:首页 > 其它

解决iText 5.0.6生成pdf,出现异常 Font 'STSong-Light' with 'UniGB-UCS2-H' is not recognized.的异常

2014-12-05 10:59 417 查看
初学者使用IText.jar生成PDF文件的问题,当文件中有中文输出的时候,都可能会遇到"Font 'STSong-Light' with 'UniGB-UCS2-H' is not recognized"的异常。

这两天才接触这个,也遇到了同样的问题。我使用的是IText5.0.6的问题,根据网上找到的资料说缺少itextasian.jar的问题。

楼主根据这篇博客/article/8436725.html得到启示,它提供的方法是将itextasian.jar解压后改包名重新打包,然后将jar文件加入到classpath里面,这个方法应该是可以的。根据文章中的分析,我发现的iTextAsian文件结构如下:

iTextAsian

--com

--lowagie

--text

--pdf

--fonts(字体文件)

上述方法会将文件名lowagie改为itextpdf,然后再打包加入classpath。

但是我觉得麻烦啊,还得配置啥环境变量啥的,换个电脑啥的还得重配啊。而且重点是IText.jar也有上的文件结构啊,为什么不能将iTextAsian.jar ...-》fonts下面的文件复制到IText.jar的fonts目录下呢,文件执行的时候找肯定也是先从本项目的jar文件下面先找哇。说干就干,实施步骤如下:

1.分别解压iTextAsian.jarIText.jar文件

2.找到iTextAsian-》com-》lowagie-》text-》pdf-》fonts下的文件,全部复制,粘贴到iText-5.0.6-》com-》itextpdf-》text-》pdf-》fonts下面

3.压缩iText-5.0.6文件成jar(注意压缩的时候进入iText-5.0.6文件选中里面三个文件添加到压缩文件,改后缀名为.jar,避免直接压缩iText-5.0.6文件夹,默认会再加上一层文件夹,导致jar文件导入后找不到类)

4.替换原有的iText.jar即可

附上自己修改后的iText-5.0.6.jar(点击下载),以后直接导入这一个jar就搞定啦!

接下来纯属扯淡,可以直接忽略:

官方的binary版本还是没直接集成对asian font的解决方案肯定有自己的考虑,但是我们可以根据自己的需要将Asian字体加入到fonts中,分分合合大势所趋嘛,适合自己的就是最好的!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐