ImageMagick 和 GHostscript 对 STSONG-light 字体的支持问题

2023年12月25日 1322点热度 0人点赞 0条评论
内容纲要

当 pdf 中包含 STSONG-light 字体时,会导致 pdf 转图片时,文字丢失。这是因为 GHostscript 默认配置的问题。在 Docker 中往往会出现这个问题。

查看 Ghostscript 配置文件:

cat /etc/ghostscript/cidfmap.d/90gs-cjk-resource-gb1.conf

部分内容如下:

/Song-Medium /GBZenKai-Medium ;
/STSong-Light /BousungEG-Light-GB ;
/STFangsong-Light /BousungEG-Light-GB ;
/STHeiti-Regular /BousungEG-Light-GB ;
/STKaiti-Regular /BousungEG-Light-GB ;
/Adobe-GB1 /BousungEG-Light-GB ;
/Adobe-GB1-Bold /GBZenKai-Medium ;

把 windows 下的 simsun.ttc 字体复制,放到容器中。
file

如果需要添加其它字体,可以放到 /usr/share/fonts/opentype/ 下,创建一个自定义命令再将字体放进去。

然后修改 /etc/ghostscript/cidfmap.d/90gs-cjk-resource-gb1.conf 文件,替换 ST 开通的字体路径为 simsun.ttc 文件。

如下所示:

/BousungEG-Light-GB << /FileType /TrueType /Path (/usr/share/fonts/truetype/arphic/uming.ttc) /SubfontID 0 /CSI [(GB1) 4] >> ;
/GBZenKai-Medium << /FileType /TrueType /Path (/usr/share/fonts/truetype/arphic/ukai.ttc) /SubfontID 0 /CSI [(GB1) 4] >> ;
/Song-Medium /GBZenKai-Medium ;
/STSong-Light <</FileType /TrueType /Path (/usr/share/fonts/opentype/myfonts/simsun.ttc) /SubfontId 0 /CSI [(GB1) 4] >> ;
/STFangsong-Light <</FileType /TrueType /Path (/usr/share/fonts/opentype/myfonts/simfang.ttf) /SubfontId 0 /CSI [(GB1) 4] >> ;
/STHeiti-Regular <</FileType /TrueType /Path (/usr/share/fonts/opentype/myfonts/simhei.ttf) /SubfontId 0 /CSI [(GB1) 4] >> ;
/STKaiti-Regular <</FileType /TrueType /Path (/usr/share/fonts/opentype/myfonts/simkai.ttf) /SubfontId 0 /CSI [(GB1) 4] >> ;
/Adobe-GB1 /BousungEG-Light-GB ;
/Adobe-GB1-Bold /GBZenKai-Medium ;

然后执行 update-gsfontmap 命令刷新配置。

痴者工良

高级程序员劝退师

文章评论