pdf转png图片乱码问题(字体缺失,centos安装字体)

项目中使用Spire.PDF将pdf转为png,出现了乱码问题,记录一下解决方案。

图片乱码如下:

在windows下运行项目,转换出是正常的,但是在linux服务器上就会出现问题
经过分析,发现应该不是 传统的乱码问题,应该是由于字体缺失导致的

使用fc-list命令查看系统现有字体
使用fc-list :lang=zh命令查看系统现有中文字体
如果上述命令不存在可以使用yum install -y fontconfig mkfontscale命令进行安装

然后我们将需要安装的字体文件复制到/usr/share/fonts/目录下
然后进入字体文件目录,简历字体索引信息,更新字体缓存

cd /usr/share/fonts/

mkfontscale

mkfontdir

fc-cache

再次使用fc-list :lang=zh命令来查看字体是否安装成功

在实际业务逻辑代码中,需要给pdf解析对象指定字体,本次使用的样例如下:

/* 使用中文字体 */
BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
ArrayList<BaseFont> fontList = new ArrayList<BaseFont>(1);
fontList.add(bf);
acroFields.setSubstitutionFonts(fontList);

至此,内容中文正常解析。

html转pdf

上一篇
评论
发表评论 说点什么
100
1