itext-2.1.7.jar和itextasian-1.5.2.jar 在 maven 项目依赖不上。问题解决。

问题描述:java 导出 PDF 文件 遇到报错

Exception in thread "main" com.lowagie.text.DocumentException: Font 'STSong-Light' with 'UniGB-UCS2-H' is not recognized.

原因:

 iText5.x版本以上中的font和encoding文件都是从String RESOURCE_PATH = "com/itextpdf/text/pdf/fonts/"加载的,而老itextasian.jar的包名是com.lowagie.text.pdf.fonts, 包名不一致导致路径错误,。

解决方案:

1、不要使用 itextasian-1.5.2.jar 了。自己下载一套所需字体文件,比如宋体 SIMSUN.TTF。 要是 .TTF 文件。其他文件好像不能读取。把文件放到 根目录下。

2、把创建 font 的方法 改造为下面这行即可。

BaseFont bfChinese  = BaseFont.createFont("/SIMSUN.TTF", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
3、这样的做的好处是不用 上线的时候再通过 Linux 系统 修改字体设置。





你可能感兴趣的:(itext-2.1.7.jar和itextasian-1.5.2.jar 在 maven 项目依赖不上。问题解决。)