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

使用Ghostscript压缩PDF时如何保留字体名称?

保留PDF原始字体名称的Ghostscript解决方案

你遇到的是Ghostscript的pdfwrite设备默认行为导致的字体重命名问题——为了优化PDF文件大小和内部结构,它会自动给嵌入的字体生成简化的内部标识(比如你看到的g_d36_f1)。不过确实有专门的参数可以让它保留原始字体名称,具体解决方法如下:

核心命令参数

添加-dPreserveFontNames=true到你的压缩命令中,这会强制pdfwrite设备保留原始字体名称,而不是生成新的内部命名。

完整命令示例

gswin64c -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dPreserveFontNames=true -sOutputFile=output.pdf input.pdf

补充说明

  1. 如果你的原始PDF包含子集化字体,且希望完全保留字体的原始子集状态(不仅是名称),可以额外添加-dSubsetFonts=false(不过默认情况下,Ghostscript会保持原始字体的子集化状态,这个参数主要用于强制关闭子集化)。
  2. 验证效果:执行你之前的字体检查命令
    gswin64c -dPDFINFO -dNOPAUSE -dBATCH input.pdf
    gswin64c -dPDFINFO -dNOPAUSE -dBATCH output.pdf
    
    对比两者的字体信息,应该能看到Helvetica这类原始字体名称被保留下来,再用pdf.js分析也不会出现重命名后的标识。

额外提示

如果需要确保字体被完整嵌入(避免后续打开时缺失字体的问题),可以再加上-dEmbedAllFonts=true参数,不过这和字体名称保留没有直接关联,是优化PDF兼容性的补充选项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 17:17:28