15

我曾经pdftk修复损坏的 PDF 文件中的一些故障,但我遇到了另一个问题,该问题没有被修复pdftk(或者至少我不知道该怎么做)。

我有基于TrueType字体的文本的 PDF 文件,但在 PDF 创建期间没有嵌入字体。现在我想将所需的字体嵌入到现有文件中。

是否有命令行工具(如pdftk)通过提供文件路径来嵌入丢失的字体TTF

4

2 回答 2

28

您可以使用Ghostscript嵌入缺失的字体。像这样运行命令:

gs                                             \
  -o file-with-embedded-fonts.pdf              \
  -sDEVICE=pdfwrite                            \
  -dEmbedAllFonts=true                         \
  -sFONTPATH="/path/to/ttf;/other/path/to/ttf" \
   input-without-embedded-fonts.pdf

另请参阅此答案:

于 2012-10-29T23:23:57.287 回答
6

我刚刚遇到了同样的问题(在 Ubuntu 14.04 上),我找到了以下解决方案:

  • 安装 Acrobat Reader
  • 将“打印到文件”打印到后记文件(“foo.ps”)和“高级 -> 打印为图像”
  • 然后在控制台上使用ps2pdf foo.ps foo.pdf,结果是一个带有嵌入字体和原始内容的文件

中间后记文件 (650KB) 比输入文件 (56KB) 大得多,但生成的 PDF 大小又适中 (82KB)。

我不知道为什么会这样,即

  • 为什么“打印为图像到文件”似乎创建了图像但也保留了字体信息,
  • 为什么 ps2pdf 会恢复此字体信息,以及
  • 为什么生成的 PDF 中有字体,因为它应该只是一个图像,对吧?

但结果是嵌入了所有字体且大小与原始文件相似的 PDF。

于 2014-08-25T10:22:21.780 回答