8

我有一个 PDF 文件,我想在 Linux 上进行后期处理。我特别想:

  • 用 Type 1 字体替换 Type 3 字体
  • 用单个子集替换同一字体的多个子集(子集是在 LaTeX 中包含图形的结果,其中每个图形都包含一个子集的字体)

在 Windows 中,使用 Adob​​e Distiller 可以实现这两个步骤(打开文档文件并使用相应的设置将其打印到新的 PDF 文档中)。

在 Linux 上,我可以使用 Ghostscript [1]对字体进行子集化,但它似乎无法用 Type 1 字体替换(全部?)Type 3 字体或组合相同字体的多个子集。

关于如何使用免费工具完成这两项任务的任何提示?

(我知道对How to convert Type 3 font to Type 1 font in PDF的回复。但是,我真的不在乎我是否在理论上丢失了有关字体的信息,因为这个对话似乎在 Distiller 中运行良好)。


[1] 论据:

gs -dPDFA -dSAFER -dNOPLATFONTS -dNOPAUSE -dBATCH \
   -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 \
   -dPDFSETTINGS=/printer -dCompatibilityLevel=1.4 \
   -dMaxSubsetPct=100 -dSubsetFonts=true \
   -dEmbedAllFonts=true -sOutputFile=/tmp/tmp.pdf -f "$1"
4

1 回答 1

9

不知何故,我怀疑您的陈述“在 Windows 中,这两个步骤在 Adob​​e Distiller 中是可能的”。在我相信它之前,我需要亲眼看到这是否有效。对于“用单个子集替换同一字体的多个子集”尤其如此。(但我现在无法亲自验证或伪造该声明......所以我暂时将其视为事实。)

Type 3 字体在 PostScript 的完整版本中进行了描述。Type 1 字体是使用 PostScript 语言的一个子集来描述的。

处理 PDF 文件时,替换嵌入字体是一项非常重要的任务。我不熟悉可以做到这一点的任何与 Ghostscript 相关的实用程序。

callassoftware.com有一个非常强大的命令行实用程序出售,名为pdfToolbox CLI 4. 它适用于 Windows、Linux、Mac OS X 和 Solaris。pdfToolbox4能够在所谓的PDF 预检作业中实现几乎所有您能想象到的东西。这包括取消嵌入字体子集并使用完整集再次重新嵌入它们(分两个单独的步骤进行,因此它可能会产生您想要的结果)。

这是我能想到的唯一可以帮助您的工具。(顺便说一句,卡拉斯的 PDF 预检技术的一部分已获得 Adob​​e 的许可,可以在 Acrobat 9 Pro 中作为其自己的预检工具......)

于 2010-09-07T07:44:30.600 回答