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

如何配置Ghostscript识别Fontmap中的CID-keyed字体?

解决Ghostscript读取自定义Fontmap.GS加载CID-keyed字体的问题

1. 修正Fontmap.GS配置格式

在F:\cidfonts目录下的Fontmap.GS中,添加符合规范的CID字体映射条目:

/NotoSansTamil-Regular <<
  /Path (F:/cidfonts/NotoSansTamil-Regular.t42)  % Windows路径可使用正斜杠避免转义
  /Subtype /CIDFontType2
  /CIDSystemInfo <<
    /Registry (Adobe)
    /Ordering (Tamil)
    /Supplement 0
  >>
>> ;

若字体自身携带完整CID元信息,也可使用简化映射:

/NotoSansTamil-Regular /NotoSansTamil-Regular ;

2. 强制加载自定义Fontmap.GS

通过命令行参数禁用Ghostscript默认内置Fontmap,指定加载你的自定义Fontmap文件:

gswin64c.exe -sFONTPATH="F:\cidfonts" -dNOFONTMAP -sFONTMAP="F:\cidfonts\Fontmap.GS" "F:\cidfonts\NotoSansTamil-Regular.ps"

参数说明:

  • -dNOFONTMAP:关闭默认内置Fontmap的加载
  • -sFONTMAP:指定自定义Fontmap的完整路径

3. 优先加载Type42字体

由于同目录TTF文件优先级高于T42,通过-dFONTTYPEPREFERENCE参数调整查找顺序,将Type42(值为4)设为最高优先级:

gswin64c.exe -sFONTPATH="F:\cidfonts" -dNOFONTMAP -sFONTMAP="F:\cidfonts\Fontmap.GS" -dFONTTYPEPREFERENCE=4 "F:\cidfonts\NotoSansTamil-Regular.ps"

字体类型对应取值:1=Type1, 2=Type1C, 3=TrueType, 4=Type42, 5=CFF

4. 正确配置cidfmap(可选)

若需通过cidfmap加载,先在F:\cidfonts\Resource\Init目录下创建cidfmap文件,添加条目:

/NotoSansTamil-Regular <<
  /Path (F:/cidfonts/NotoSansTamil-Regular.t42)
  /CIDSystemInfo <<
    /Registry (Adobe)
    /Ordering (Tamil)
    /Supplement 0
  >>
  /Subtype /CIDFontType2
>> ;

然后执行命令时指定cidfmap路径:

gswin64c.exe -sFONTPATH="F:\cidfonts" -dNOFONTMAP -sCIDFMAP="F:\cidfonts\Resource\Init\cidfmap" -dFONTTYPEPREFERENCE=4 "F:\cidfonts\NotoSansTamil-Regular.ps"

5. 验证与排查

  • 用以下命令测试字体是否能被正确识别:
gswin64c.exe -sFONTPATH="F:\cidfonts" -dNOFONTMAP -sFONTMAP="F:\cidfonts\Fontmap.GS" -c "/NotoSansTamil-Regular findfont quit"

若执行无报错,说明字体映射生效。

  • 检查配置文件的语法:确保所有括号、分号为英文半角,路径使用正斜杠或转义反斜杠。
  • 确认字体文件未损坏,可通过直接指定字体文件的命令对比验证。

内容的提问来源于stack exchange,提问作者Marmayogi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 02:30:57