web-dev-qa-db-ja.com

PDFドキュメントのフォントに置き換えます

編集可能なフォームフィールドを含むPDFドキュメント(暗号化されていない)があります。ただし、これらのフィールドのフォントが壊れています。一部のグリフが欠落しているため、テキストを入力するといくつかのギャップが表示されます。

どうすればPDF documentを変更できますか—作成に使用したソースドキュメントにアクセスできません— to壊れたフォントの代わりに別のフォントを使用します

問題のフォントはAdobeの Caliban Regular で、ドキュメントに埋め込まれているのがわかります。空白で表示されるグリフには、「i」、「T」、「V」が含まれます。おそらく私が発見していない他の人。

キャリバンを使用した別の同様のドキュメントもあります。これは、上記の壊れたものとしてリストされているグリフを含めて、正しく表示されます。誰かが私にフォントを1つから取得してPDFそしてそれを既存のPDFに置き換える方法)を教えてくれるなら、それは解決策になります。

私は現在使用しています:

私は他の フリーソフトウェア PDF編集ツール( ゼロ価格かどうか )、これを手伝ってくれるなら)に興味があります仕事。

13
bignose

PDFに埋め込まれているフォントを置換することは非常に困難です。私は、フリー・アズ・イン・スピーチ(GPLライセンス)またはフリー・アズ・イン・ビール(無料)ソフトウェアがおそらく(フォントの埋め込みを解除することによって)それを実行できることを知りません。最初に、次に代替フォントを再埋め込みします)。私はそれを行う2つの商用製品しか知りません:callassoftware.comのpdfToolbox4とEnfocus 'PitStop(もちろん、他にもありますが、私はそれらを知りません、およびこれら2つはここのマーケットリーダーです)。

これは、フリーソフトウェアを使用してPDFから埋め込みフォントを抽出する方法です。フォントのライセンスで禁止されていない場合にのみ、法的に許可されていることに注意してください。Ghostscriptでソースコードリポジトリには、extractFonts.psという名前のPostScriptプログラムユーティリティがあります。これは次の場合に役立ちます。

  1. Ghostscriptをインストールします。最新バージョンの8.71を使用してください。
  2. ファイルをダウンロードhttp://svn.ghostscript.com/ghostscript/trunk/gs/toolbin/extractFonts.ps
  3. ダウンロードしたファイルに含まれているコメントを読むことをお勧めします。
  4. DOSボックス(cmd.exe)で次のコマンドを実行します。

    gswin32c.exe ^
        -q ^
        -dNODISPLAY ^
        C:/path/to/extractFonts.ps ^
        -c "(c:/path/to/your-pdf-file.pdf) extractFonts quit"
    
  5. コマンドが吐き出す可能性のある警告またはエラーメッセージに注意してください。
  6. 正常に抽出されたフォントは、PDFと同じ名前を使用して現在のディレクトリに保存されます。

(ここでの抽出フォントは削除 PDFからのフォントを意味するのではなく、PDFに埋め込まれたフォントのコピーであるフォントファイルを作成することを意味することに注意してください。)


これは、mayが目的の達成に貢献するもう1つの構成要素です。 PDFのすべての圧縮された部分/ストリームを解凍して、単純なテキストエディタでファイルをより簡単に編集できるようにすることができます。 (警告:PDFの編集は単純で単純な作業ではありません---編集作業には、PDFファイル形式の内部)に関するかなりのノウハウと賢さが必要になります。)

このトリックでは、GhostscriptのSubversion toolbinサブディレクトリのユーティリティも使用します。

  1. ファイルをダウンロードします http://svn.ghostscript.com/ghostscript/trunk/gs/toolbin/pdfinflt.ps
  2. ダウンロードしたファイルのコメントを読むことをお勧めします。
  3. DOSボックス(cmd.exe)で次のコマンドを実行します。

    gswin32c.exe ^
         -- ^
         c:/path/to/pdfinflt.ps ^
         c:/path/to/your-pdf-file.pdf ^
         c:/path/to/your-pdf-file-decompressed.pdf
    

このコマンドは、すべての'flate'-圧縮されたストリームを解凍しようとします。 (運が悪ければ、ファイルには他の圧縮方法('Zip'など)を使用したスト​​リームも含まれますが、このコマンドによって変更されることはありません。)

5
Kurt Pfeifle