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

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

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

      楼主根据这篇博客http://blog.csdn.net/wang12/article/details/5661106得到启示,它提供的方法是将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中,分分合合大势所趋嘛,适合自己的就是最好的!!




  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值