解决使用pdfbox转图片中文乱码问题


问题背景

K8S上使用pdfbox将pdf转png,出现中文汉字乱码

pdf文件


转换乱码的文件


原因分析

通过查看日志发现异常信息为

Using fallback LiberationSans-Regular for CID-keyed font AdobeKaitiStd-Regular

去匹配字体时没有匹配上,使用了默认的字体,但是默认的字体不支持中文,导致乱码

解决方案

1.在服务运行环境上安装相对应的字体

对外界依赖过高,需要外部人员配合,不方便未采用

2.重写pdfbox代码,对字体匹配处理实现采用

重写org.apache.pdfbox.pdmodel.font.FontMapperImpl

排查下来,服务器中不支持的字体太多,安装字体并不会解决所有适配字体问题

经过源码的分析:源码做了适配最终兜底字体策略,只需要调整支持中文的最终兜底字体即可!

将支持的字体放在项目的resource下,替换实现加载兜底的字体。


解决后转化的图片

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容