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

如何通过Ghostscript脚本解决PDF/A-2b转换时重复嵌入子集字体问题

解决Ghostscript转换PDF/A-2b时同名字体重复嵌入的问题

问题背景

使用Ghostscript 9.52执行以下命令将PDF转换为PDF/A-2b规范文件:

gswin64 -dPDFA=2 -dBATCH  -dNOPAUSE -dFastWebView -sColorConversionStrategy=UseDeviceIndependentColor -sProcessColorModel=DeviceRGB -sDEVICE=pdfwrite -dPDFACompatibilityPolicy=1 -sOutputFile=pdf_output_1.pdf PDFA_def2.ps input.pdf -dPDFSETTINGS=/prepress pdfmarks.txt

转换后通过Adobe Preflight检查时收到警告:

a font with same name is embedded multiple times. This can lead to wrong if the PDF viewer cannot differentiate these fonts

在文件属性的字体列表中可见相同CIDFont被多次嵌入,需通过Ghostscript命令直接修复该问题,替代Adobe Pro手动修复方式。

解决方案

通过调整Ghostscript的字体处理参数,优化字体嵌入逻辑并避免线性化带来的拆分问题,修改后的命令如下:

gswin64 -dPDFA=2 -dBATCH -dNOPAUSE -sColorConversionStrategy=UseDeviceIndependentColor -sProcessColorModel=DeviceRGB -sDEVICE=pdfwrite -dPDFACompatibilityPolicy=1 -dPDFSETTINGS=/prepress -dSubsetFonts=true -dCompressFonts=true -dDetectDuplicateFonts=true -sOutputFile=pdf_output_1.pdf PDFA_def2.ps input.pdf pdfmarks.txt

关键参数说明

  • 移除-dFastWebView:该参数用于生成线性化PDF,过程中可能将字体拆分并重复嵌入到文档不同部分,移除后可避免此类不必要的重复。
  • 添加-dSubsetFonts=true:启用字体子集化,仅嵌入文档实际使用的字形,既减小文件体积,也降低相同字体重复嵌入的概率。
  • 添加-dCompressFonts=true:压缩嵌入的字体数据,配合子集化进一步优化字体处理效率。
  • 添加-dDetectDuplicateFonts=true:让Ghostscript主动检测重复字体定义,自动合并相同字体资源,确保每个字体仅嵌入一次。
  • 调整-dPDFSETTINGS=/prepress位置:将该预设参数移至核心设备参数之后、输入输出文件之前,确保配置优先级正确生效。

执行修改后的命令后,重新用Adobe Preflight检查PDF/A文件,重复字体的警告应会消失,字体属性中也不会再出现同名CIDFont多次添加的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 10:22:20