You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ghostscript添加自定义TrueType字体失败,字体被Courier替换的问题求助

Ghostscript添加自定义TrueType字体失败,字体被Courier替换的问题求助

嘿,我来帮你排查下问题,看起来你已经走对了大部分步骤,但可能在路径定义或者字体识别上踩了小坑:

1. 先修正字体路径的问题

你在fontmap里写的(Olde English Regular.ttf)是相对路径,Ghostscript会默认去它自带的/usr/share/ghostscript/9.55.0/Resource/Font/目录下找这个文件,但你的字体实际在/usr/share/fonts里,路径不匹配才导致了找不到文件的报错。

解决办法有两种:

  • 要么把字体文件直接复制到/usr/share/ghostscript/9.55.0/Resource/Font/目录下,这样原来的相对路径就能生效;
  • 要么在fontmap里写完整的绝对路径,注意保留文件名里的空格:
    /OldeEnglish-Regular (/usr/share/fonts/Olde English Regular.ttf) ;
    

2. 确认字体的内部PostScript名称是否正确

有时候字体的内部名称和文件名不一样,Ghostscript可能不认你自定义的OldeEnglish-Regular。你可以用fc-list命令(需要先安装fontconfig工具)查看字体的内部名称:

fc-list | grep "Olde English"

如果查到的内部名称不是OldeEnglish-Regular,比如是OldeEnglishRegular,那你需要把fontmap里的名称改成对应的内部名称,比如:

/OldeEnglishRegular (/usr/share/fonts/Olde English Regular.ttf) ;

3. 刷新字体缓存并验证

把字体放到系统字体目录后,记得刷新字体缓存让系统识别到:

fc-cache -fv

修改fontmap后最好重启相关程序,确保Ghostscript加载了新的配置。

你还可以用一个简单的Ghostscript命令测试字体是否能被识别:

gs -c "/OldeEnglish-Regular findfont {pop (Font found!) =} {pop (Font not found!) =} ifelse quit"

如果输出Font found!,说明字体已经能被正常识别,再去转换.abc文件应该就不会被替换成Courier了。

试试这些步骤,应该能解决你的问题~

备注:内容来源于stack exchange,提问作者Frank Riccobono

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 15:23:02