Linux上的PDF:组合字体子集并将Type 3替换为Type 1

时间:2010-09-05 21:47:14

标签: linux pdf fonts pdflatex ghostscript

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

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

使用Windows,可以使用Adobe 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"

1 个答案:

答案 0 :(得分:8)

不知何故,我怀疑你的陈述“使用Windows,这两个步骤可以使用Adobe Distiller”。在我相信之前,我需要亲眼看看这是有效的。对于“用单个子集替换相同字体的多个子集”尤其如此。 (但我现在不能自己验证或伪造这个陈述......所以我暂时把它当成一个事实。)

Type 3字体在PostScript的完整版本中进行了描述。通过使用PostScript语言的子集来描述类型1字体。

在处理PDF文件时,替换嵌入字体是一项非常重要的任务。我不熟悉任何与Ghostscript相关的实用工具。

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

这是我能想到的唯一一个可以帮助你的工具。 (顺便说一句,卡拉斯的PDF预检技术的一部分由Adobe授权在Acrobat 9 Pro中作为自己的预检工具......)