web-dev-qa-db-ja.com

PDFファイルを修復し、不足しているフォントを埋め込む方法

破損したPDFファイルのいくつかの障害を修復するためにpdftkを使用しますが、pdftkによって修正されない別の問題に直面しました(または少なくとも私は知りませんそうする方法)。

PDF TrueTypeフォントに基づくテキストを含むファイルがありますが、PDFの作成中に、フォントが埋め込まれていません。今度は埋め込みたいです。既存のファイルに必要なフォント。

pdftkファイルへのパスを提供することにより、不足しているフォントを埋め込むためのコマンドラインツール(TTFなど)はありますか?

13
Googlebot

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

この回答も参照してください。

25
Kurt Pfeifle

私は(Ubuntu 14.04で)同じ問題を抱えていて、次の解決策を見つけました:

  • acrobatReaderをインストールする
  • 「printtofile」をポストスクリプトファイル(「foo.ps」)に出力し、「advanced-> printasimage」を出力します。
  • 次に、コンソールでps2pdf foo.ps foo.pdfを使用すると、フォントと元のコンテンツが埋め込まれたファイルが作成されます。

中間のポストスクリプトファイルは入力ファイル(56KB)よりもはるかに大きい(650KB)ですが、結果のPDFは再び中程度のサイズ(82KB)です。

なぜこれが機能するのかわかりません。

  • 「画像としてファイルに印刷」が画像を作成するように見えるが、フォント情報も保持する理由、
  • ps2pdfがこのフォント情報を回復する理由と
  • 結果のPDFは画像のみである必要があるため、フォントが含まれているのはなぜですか?」.

しかし、結果はPDFで、すべてのフォントが埋め込まれ、元のファイルと同様のサイズになります。

5
peschü