如何修复PDF文件并嵌入丢失的字体

Goo*_*bot 13 pdf fonts pdf-generation truetype pdftk

pdftk用来修复损坏的PDF文件中的一些失败,但我遇到了另一个问题,这个问题没有得到解决pdftk(或者至少我不知道该怎么做).

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

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

Kur*_*fle 24

您可以使用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
Run Code Online (Sandbox Code Playgroud)

另见这个答案:

  • 在win32上,如果你安装了ghostScript,命令可能如下所示:gswin32c -sFONTPATH = C:\ Windows\Fonts -o output-pdf-with-embedded-fonts.pdf -sDEVICE = pdfwrite -dPDFSETTINGS =/prepress input-pdf -where-some-fonts-are-not-embedded.pdf(在您的系统上找到exe文件,可能会将其添加到PATH - 环境变量,如有必要) (2认同)

pes*_*chü 5

我只是遇到了同样的问题(在Ubuntu 14.04上),我发现以下解决方案:

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

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

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

  • 为什么“将图像打印为文件”似乎可以创建图像但还保留字体信息,
  • 为什么ps2pdf恢复此字体信息,以及
  • 为什么在生成的PDF中根本没有字体,因为它只能是图像,对吧?

但是结果是PDF嵌入了所有字体,并且大小类似于原始文件。