当 PDF 有 Helvetica 时,如何在 PDF 中嵌入 Arial?

Bro*_*ses 3 fonts pdf print-to-pdf ghostscript adobe-acrobat

所以,我有一个由使用 Base 14 字体的程序生成的 PDF 文件,因此它包含“Helvetica”和“Times Roman”。当我在 Windows 上的 Acrobat 7.0 副本中查看它时(例如),它用 Arial 和 Times New Roman 显示了这些。我没问题。

问题是我想在 lulu.com 上发布这个 PDF 文件,他们希望嵌入所有字体。包括 Base 14。我没有 Helvetica 的副本,所以看起来很自然的事情是用 Arial 替换 Helvetica 并嵌入 Arial。我怎样才能做到这一点?

我尝试使用 Acrobat 中的打印功能(注意:这是完整版本,而不是 Reader)使用 Adob​​e 的“打印到 PDF”打印机驱动程序打印到 PDF 文件,并在打印设置中选择了“嵌入所有字体”选项。这适用于我拥有实际副本的字体,但不是为 Helvetica“打印”Arial - 如果打印到真正的打印机会这样做 - 它会将所有 Helvetica 保留为 Helvetica 并且不嵌入它。

有关执行此操作的替代方法的任何建议?我真正想要的只是我的 PDF 文件的副本,其中嵌入了所有字体,如果这样做意味着对其中的“Helvetica”进行通常的替换,我会很高兴。如果我能在 Acrobat 或我拥有的其他软件(pdftex,也许?)中做到这一点,我会很高兴,但如果需要,我愿意安装另一个免费实用程序。

Kur*_*fle 5

您可以使用 Ghostscript(甚至在 Windows 上)来创建嵌入了所有字体(甚至 TrueType 字体)的 PDF。

如果幸运的话,您可以按照以下步骤创建嵌入字体的PostScript文件(它将作为 Ghostscript 运行的 PDF 创建过程的输入):

  • 在您的 PC 上安装适用于 Windows 的最新 Ghostscript (v8.71)。
  • 在您的 Windows 机器上安装 Adob​​e PostScript 驱动程序。
  • 选择要用于 PDF 的所有默认设置(尤其是页面大小和方向)。
  • 像这样设置字体嵌入(在驱动程序属性的“高级”选项卡上):
    • TrueType-Font: '作为软字体下载到打印机'
    • TrueType 下载选项:“TrueType”(不是“轮廓”或“位图”或“自动”)
  • 启用“打印到文件”复选框。

以上 UI 字符串已被我翻译回英文——因此您在 PC 上看到的确切措辞可能会有所不同。

打印时,系统会提示您输入文件名+路径,默认扩展名为 *.prn。将文件另存为“somename.ps”(它将是 PostScript)。

现在在 cmd/DOS 窗口中运行 Ghostscript 命令行来创建 PDF:

gswin32c ^
 -dNOPAUSE ^
 -dBATCH ^
 -sDEVICE=pdfwrite ^
 -dPDFSETTINGS=/prepress ^
 -dCompatibilityLevel=1.4 ^
 -dHaveTrueTypes=true ^
 -dSubsetFonts=true ^
 -sOutputFile="c:\path\to\somename.pdf" ^
 -c ".setpdfwrite <</NeverEmbed [ ]>> setdistillerparams" ^
 "c:\path\to\somename.ps"
Run Code Online (Sandbox Code Playgroud)

Ghostscript 将使用它自己的(非常好的)克隆字体(由 URW Foundry 在 FOSS 许可下捐赠)代替原始的 Adob​​e 'base 14' 字体。具体来说,它将使用:

  • 而不是“时代”:“Nimbus Roman No9 L”
  • 而不是“Helvetica”:“Nimbus Sans L”
  • 而不是“信使”:“Nimbus Mono L”
  • 而不是“符号”:“标准符号L”
  • 而不是“ZapfDingbats”:“Dingbats”