著者 Jacob Collins (IDRsolutions) 翻訳/編集 インターワーク
使われないオブジェクトとは
通常、PDFファイルが修正されると、元のコンテンツはそのまま残され、新しいコンテンツが追加される形になります。これを「増分更新」と呼びます。このプロセスにより、変更されたオブジェクトは新たにファイルに追加され、元のオブジェクトもファイル内に残り続けます。これら元のオブジェクトは使用されることなくスペースを占有します。
使われないオブジェクトには、画像/グラフィック、マルチメディア、フォント、テキスト、メタデータ、フォーム、注釈、ページ、ブックマークなど、PDFファイル内のさまざまな要素が含まれます。これらが残留することで、ファイルサイズが不必要に大きくなる原因となります。
使われないオブジェクトの削除方法
Javaでプログラム的に削除する方法
大量のPDFファイルやシステムで自動生成されるPDFを効率的に最適化するには、プログラムによる自動化が不可欠です。ここでは、Javaで実装された高機能なPDFライブラリであるJPedalを使用して、使われないオブジェクトを削除する方法を紹介します。
- JPedalのダウンロードと設定
- JPedalのページからトライアルを申込み、トライアル版をダウンロードします。
- プロジェクトのクラスパスまたはモジュールパスに
jpedal.jar
を追加します。
- PDFファイルのハンドルを作成
- 操作対象のPDFファイルを指す
File
オブジェクトを作成します。
- 操作対象のPDFファイルを指す
- 使われないオブジェクトの削除を実行以下のコードを実行して、使われないオブジェクトを削除します。
PdfOptimizer.optimizePDF(
new File("/path/to/input.pdf"),
new File("/path/to/output.pdf"),
PdfOptimizer.Optimization.REMOVEUNUSEDOBJECTS
);
コマンドラインで削除する方法
手作業で個別に最適化を行うのは手間がかかりますが、コマンドラインを使用すればスクリプトを使って大量のPDFファイルを一括で処理することが可能です。- JPedalのトライアル版をダウンロード
- JPedalのトライアル版をダウンロードし、
jpedal.jar
を取得します。
- JPedalのトライアル版をダウンロードし、
- コマンドを実行 以下のコマンドを実行して、使われないオブジェクトを削除します。
java -cp jpedal.jar org.jpedal.tools.PdfOptimizer --removeUnusedObjects inputFile outputFile
※スクリプトを組むことで、フォルダ内のすべてのPDFファイルを一括処理することも可能です。
手動での最適化のメリットと課題
手動で最適化するソフトウェアとしてメジャーなソフト、Adobe Acrobatには、画像のダウンサンプリング、フォントの埋め込み、透明効果の統合、未使用オブジェクトの削除など、多くのPDF最適化機能があります。これらを使用して個々のPDFファイルを手動で最適化することも可能です。
しかし、大量のPDFファイルやシステムで自動生成されるPDFを扱う場合、手作業で最適化するのは現実的ではありません。
一方、JPedalを使用すれば、プログラムやスクリプトを使って自動的に使われないオブジェクトの削除が可能です。これにより、大量のPDFファイルを効率的に最適化できます。
ファイルサイズの減量効果
使われないオブジェクトを削除することで、ファイルサイズを大幅に削減できる可能性があります。具体的な削減率は元のファイルの構造や未使用オブジェクトの量によりますが、以下のような効果が期待できます:
- 未使用画像の削除:高解像度の未使用画像を削除することで、ファイルサイズを大幅に削減できます。
- 不要なフォントの除去:使用されていないフォントデータを削除することで、数MBのサイズ減少が可能です。
- メタデータのクリア:不要なメタデータや編集履歴を削除し、ファイルをクリーンに保ちます。
JPedalのその他の特長
JPedalは使われないオブジェクトの削除以外にも、次のような機能を提供しています:
PDFの画像変換とサムネイル生成 | PDFをさまざまな画像形式に変換し、任意のサイズの画像を生成できます。 |
PDFの表示 | Java Swing PDF Viewerを使用して、複数ページの表示、検索、印刷、注釈編集が可能です。 |
PDFの印刷 | Java Printing Servicesを使ってPDFを印刷できます。 |
テキストの抽出と検索 | PDFからのテキスト抽出、ワイルドカードや正規表現を使ったテキスト検索が可能です。 |
画像の抽出 | PDF内の画像を高品質で抽出します。 |
PDFメタデータへのアクセス | ページサイズ、アウトライン、ページ数などのメタデータを取得可能です。 |
PDFフォームの操作 | XFAとAcroFormsをサポートし、PDFフォームデータの読み取りと編集が可能です。 |
アノテーションの操作 | PDFファイルに注釈を追加・編集できます。 |
PDFのマージ・分割 | PDF文書を結合・分割したり、特定のページを削除することが可能です。 |
コンテンツの安全性 | JPedalはローカル環境で動作し、サードパーティのライブラリを使用しないため、ファイルの安全性を確保します。 |
これらの機能により、PDFのさまざまな操作を自動化・効率化でき、開発者にとって非常に有用なツールとなります。
JPedalを利用することで、使われないオブジェクトの削除だけでなく、多彩な機能による効率的なPDF操作が可能になります。プログラム的に自動化することで、時間と労力を節約し、システム全体のパフォーマンスとセキュリティを向上させることができます。PDFファイルの最適化を自動化し、業務の効率化を図るために、ぜひJPedalの導入を検討してみてはいかがでしょうか。
PDFアプリ開発ツール(SDK)をお探しのみなさま、効率のよい開発作業のためにJPedal、BuildVu、JDeliがきっとお役に立つことと思います。
これら3製品は無料で試用していただけますので、まずはお試しのうえ、ぜひ導入をご検討ください。
JPedal、BuildVu、JDeliのシステム開発やプログラミング、無料トライアルの情報は下記の各製品のトライアルページをご覧ください。技術的なことから費用面まで、ご質問・ご相談も各製品ページの問合せボタンからお寄せください。