【问题标题】:Stop Ghostscript from replacing embedded fonts?阻止 Ghostscript 替换嵌入的字体?
【发布时间】:2017-01-03 10:00:45
【问题描述】:

使用 Ghostscript 9.19、Windows 10 专业版

我正在使用 Ghostscript 将现有的 PDF 转换为 PDF/A-1b。

但是,即使我的原始 PDF 中已经嵌入了所需的字体, Ghostscript 正在输出 PDF/A 文件中替换它们。

具体来说: 将字体 Times-Bold 替换为 Times New Roman,Bold。 将字体 Times-Roman 替换为 Times New Roman。 用 Times-Italic 字体替换 Times New Roman,Italic。

我的机器上安装了 Times New Roman(默认安装)。

这是我的命令行:

C:\Program Files\gs\gs9.19\bin>gswin64c -dPDFA -dBATCH -dNOPAUSE 
 -sProcessColorModel=DeviceCMYK -sDEVICE=pdfwrite 
 -sPDFACompatibilityPolicy=1 -sFontPath=C:/Windows/Fonts 
  -IC:/windows/fonts -sOutputFile=C:/temp/testerA.pdf c:/temp/tester.pdf

在使用 Gjostscript 处理之前:

使用 Ghostscript 处理后:

为什么 Ghostscript 会替代嵌入字体?

如何防止 Ghostscript 替换嵌入的字体?

编辑:我系统中 Times 字体的屏幕截图显示该名称与 PDF 中的嵌入名称匹配:

【问题讨论】:

  • 嗯,如果所有字体都已包含在 pdf 中,我将删除这些选项 -sFontPath=C:/Windows/Fonts -IC:/windows/fonts ,并可能添加 -dNOPLATFONTS
  • 我最初在命令行中没有字体路径的情况下进行了转换,但仍然看到相同的替换。我后来添加了路径以解决它,但替换仍在继续......

标签: pdf ghostscript


【解决方案1】:

这里的基本答案很简单,就是字体首先没有嵌入。

查看我们看到的原始字体列表:

Times New Roman
Actual Font: TimesNewRomanPSMT

这不是同一种字体。同样 Times New Roman,Italic 与 TimesNewRomanPS-ItalicMT 等字体不同。

在您的机器上安装 TimesNewRomanPSMT,并将 -sFontPath 设置为指向该目录,这意味着如果您的输入使用了一种名为“TimesNewRomanPSMT”但不嵌入它的字体,那么 Ghostscript 将使用磁盘中的 TrueType 字体,因为同名。

“Times New Roman”与“TimesNewRomanPSMT”的名称不同,因此 Ghostscript 不会使用 TimesNewRomanPSMT 作为 Time New Roman 的替代品,而是使用其内置字体并确定与 Times New 最接近的匹配Roman 是 Times,这在我看来是完全合理的。

可以自己定义替换,因此如果您想使用 TimesNewRomanPSMT 作为 Times New Roman 的替代,您可以这样做。您只需要编辑 fontmap.GS。

但从根本上说,Ghostscript 并没有替换嵌入的字体,因为字体不是嵌入的。请注意,PDF/A 要求嵌入所有字体,因此 pdfwrite 设备甚至无法让字体保持原样未嵌入,它必须嵌入一些东西。

【讨论】:

  • 你说的似乎有道理,但是我在我的 Windows 10 系统上查看了 Times 字体,该字体实际上名为 TimesNewRomanPSMT - 我在原始帖子中添加了一张新图片。换句话说,字体嵌入在原始 PDF 中。
  • 不,字体没有嵌入。 PDF 文件请求的字体名为“Times New Roman” Acrobat 在 PDF 文件或磁盘上找不到该名称的字体,因此它选择使用名为“TimesNewRomanPSMT”的可用字体。这就是为什么 Acrobat 会告诉您:“Actual Font TimesNewRomanPSMT”。查看替换字体的名称不会告诉您任何信息,如果您想知道 PDF 文件中的内容,您必须查看 PDF 文件内部,或者使用可以为您完成的工具。相信我的话,字体没有嵌入。
猜你喜欢
  • 2013-12-26
  • 1970-01-01
  • 2018-01-03
  • 1970-01-01
  • 2014-10-25
  • 2016-02-08
  • 1970-01-01
  • 2011-06-24
  • 1970-01-01
相关资源
最近更新 更多