Ghostscript を使用して pdftk 連結 PDF を「修復」することもできます (ただし、9.05 などの最新バージョンを使用してください)。多くの場合、Ghostscript は多くのサブセット化されたフォントをより少ないフォントにマージできます。
コマンドは次のようになります。
gswin32c.exe ^
-o output.pdf ^
-sDEVICE=pdfwrite ^
-dPDFSETTINGS=/prepress ^
input.pdf
確認する
pdffonts.exe output.pdf
pdffonts.exe input.pdf
各ファイルに含まれるさまざまなフォント サブセットのインスタンスの数 (コマンドライン ツールの小さなパッケージの一部としてここpdffonts.exe
から入手できます)。
しかし、このプロセスの「遅い」ことについて文句を言わないでください -- Ghostscript はすべての PDF 入力ファイルを完全に解釈してそのタスクを達成しますが、pdftk ファイルの連結ははるかに単純なプロセスです...
アップデート:
代わりに、pdftk
Ghostscript を使用して入力 PDF ファイルをマージできます。これにより、pdftk でマージされたファイルの事後的な Ghostscript の「修復」で発生していた問題を回避できる可能性があります。これは、「ダム」 pdftk merge よりもはるかに遅くなることに注意してください。ただし、特にフォント処理とファイル サイズに関しては、結果の方が気に入る場合があります。
これは可能なコマンドです:
gswin32c.exe ^
-o output.pdf ^
-sDEVICE=pdfwrite ^
-dPDFSETTINGS=/prepress ^
input.pdf
マージおよび最適化プロセスをより細かく制御するために、Ghostscript CLI にさらにオプションを追加できます。
最終的には、両極端の間で決定する必要があります。
- 大規模な出力ファイルを「高速」
pdftk
に生成することと、
gswin32c.exe
無駄のない出力ファイルを生成する「遅い」 (Ghostscript)。
多くのマージプロセスの両方の方法の結果(実行時間と結果のファイルサイズ)を投稿していただければ幸いです...
更新 2: 申し訳ありませんが、以前のバージョンにはタイプミスが含まれていました。
そうではありません-sPDFSETTINGS=...
が、そうでなければなりません-dPDFSETTINGS=...
( s の代わりにd )。
更新 3:
ソース ファイルはテンプレートから作成された Excel シートであるため (通常、多くの異なるフォントを使用することはありません)、Ghostscript がすべての将来的に使用されるフォントの必要なすべてのグリフを確実に持つようにするためのトリックを使用することができます。マージ後の PDF:
- 各フォントと書体 (標準、斜体、太字、太字-斜体)について、印刷領域の左上にあるテンプレート シートにテーブル セルを追加します。
- この表のセルに、ASCII アルファベットのすべての印刷可能な文字と句読点を入力します:
0123456789
、ABCD...XYZ
、abc...xyz
など:-_;°%&$§")({}[]
。
- 全体のレイアウトを妨げないように、セル (およびフォントサイズ) を必要なだけ小さくします。白を使用してセル内の文字を書式設定します (最終的な PDF で文字が見えないようにします)。
この方法により、各 PDF が同じグリフのサブセットを使用するようになることが期待されます。これにより、Ghostscript を使用してファイルをマージするときに観察された問題が回避されます。(注意: fe Arial と Arial-Italic を使用する場合、そのようなセルを 2 つ作成する必要があります。1 つは標準の Arial 書体で書式設定され、もう 1 つは斜体で書式設定されます。