Support Issues of STSONG-light Font in ImageMagick and GHostscript

2023年12月25日 3069点热度 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 命令来刷新配置。

痴者工良

高级程序员劝退师

文章评论