问题描述: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 系统 修改字体设置。