🚀 通过Puppeteer导出的PDF文件,其中部分字体在Acrobat中存在显示乱码问题的一种解决思路。
🔍 问题核心
- 环境:Linux + Puppeteer
- 症状:Adobe Acrobat中思源黑体CN显示乱码 但WPS和浏览器正常
- 根因:查了资料应该是OTF字体格式与PDF渲染引擎的兼容性问题
📋 完整解决步骤
第一步:获取正确的字体
-
官方源获取:
arduinohttps://github.com/adobe-fonts/source-han-sans
-
转换OTF为独立TTF:
我是在本地Windows使用 otf2ttf 将OTF转为TTF 感觉转换前后有点差异 但是目前似乎不影响最终效果 后续可能继续研究下更好的方法
shellpip install otf2ttf otf2ttf .\SourceHanSansCN-Bold.otf
-
输出文件:
SourceHanSansCN-Regular.ttf
SourceHanSansCN-Medium.ttf
SourceHanSansCN-Bold.ttf
- 其他字号
第二步:部署新字体系统
bash
# 移除问题字体
sudo rm /usr/share/fonts/chinese/SourceHanSansCN*.otf
# 部署新TTF
# sudo cp *.ttf /usr/share/fonts/chinese/
# 我这里是直接上传的
sudo chmod 644 /usr/share/fonts/chinese/*.ttf
# 重建字体缓存
sudo fc-cache -fv
# 验证安装
fc-list | grep -i "Source Han Sans CN"
第五步:生成后验证
至此重新生成PDF之后乱码问题就解决了。