fbpx

PDFを最適化して軽量化!使われないオブジェクト削除で得られる驚きの効果

Javaでシステム開発を行う中で、PDFファイルのサイズが予想以上に大きくなり困った経験はありませんか?その原因の一つに「使われないオブジェクト」の存在があります。今回は、Javaの開発者でJPedalのプロダクトマネージャーのJacob氏の記事を元に、使われないオブジェクトとは何か、その削除方法、削除によるファイルサイズの削減効果、そしてその他のメリットについて解説します。
開発者ブログイメージ

著者 Jacob Collins (IDRsolutions)  翻訳/編集 インターワーク

使われないオブジェクトとは

通常、PDFファイルが修正されると、元のコンテンツはそのまま残され、新しいコンテンツが追加される形になります。これを「増分更新」と呼びます。このプロセスにより、変更されたオブジェクトは新たにファイルに追加され、元のオブジェクトもファイル内に残り続けます。これら元のオブジェクトは使用されることなくスペースを占有します。

使われないオブジェクトには、画像/グラフィック、マルチメディア、フォント、テキスト、メタデータ、フォーム、注釈、ページ、ブックマークなど、PDFファイル内のさまざまな要素が含まれます。これらが残留することで、ファイルサイズが不必要に大きくなる原因となります。

使われないオブジェクトの削除方法

Javaでプログラム的に削除する方法

大量のPDFファイルやシステムで自動生成されるPDFを効率的に最適化するには、プログラムによる自動化が不可欠です。ここでは、Javaで実装された高機能なPDFライブラリであるJPedalを使用して、使われないオブジェクトを削除する方法を紹介します。

  1. JPedalのダウンロードと設定
    • JPedalのページからトライアルを申込み、トライアル版をダウンロードします。
    • プロジェクトのクラスパスまたはモジュールパスにjpedal.jarを追加します。
  2. PDFファイルのハンドルを作成
    • 操作対象のPDFファイルを指すFileオブジェクトを作成します。
  3. 使われないオブジェクトの削除を実行以下のコードを実行して、使われないオブジェクトを削除します。

				
					PdfOptimizer.optimizePDF(
        new File("/path/to/input.pdf"),
        new File("/path/to/output.pdf"),
        PdfOptimizer.Optimization.REMOVEUNUSEDOBJECTS
);

				
			

コマンドラインで削除する方法

手作業で個別に最適化を行うのは手間がかかりますが、コマンドラインを使用すればスクリプトを使って大量のPDFファイルを一括で処理することが可能です。
  1. JPedalのトライアル版をダウンロード
    • JPedalのトライアル版をダウンロードし、jpedal.jarを取得します。
  2. コマンドを実行 以下のコマンドを実行して、使われないオブジェクトを削除します。
				
					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のシステム開発やプログラミング、無料トライアルの情報は下記の各製品のトライアルページをご覧ください。技術的なことから費用面まで、ご質問・ご相談も各製品ページの問合せボタンからお寄せください。

    Facebook
    Twitter
    Email
    公式ブログロゴ

    製品に関する記事や開発者のブログ

    PDF用語集

    この記事ではPDF関連の一般的な用語を網羅し、それぞれの定義を解説します。

    PDFメタデータとは?開発者が知っておくべき基礎知識

    PDFファイルを扱う際、「メタデータ」という言葉を耳にすることが多いでしょう。メタデータとは、ドキュメントに関する情報を指し、ファイルの作成者や作成日、使用されたソフトウェアなど、ドキュメントを説明する情報が含まれています。この記事では、開発者向けにPDFメタデータの基本からその利用方法までをわかりやすく解説します。

    PDFファイルを扱うシステム開発・ウェブ開発に役立つ

    開発者向けPDF入門ガイド

    開発者向けPDF入門ガイド

    PDFの基礎から応用まで開発者のための入門ガイド2024年版

    PDF の仕様や活用方法など、開発者に必要な情報がコンパクトにまとめました。初めてPDFを扱う開発者にも分かりやすく、基礎から応用までカバーしているため、PDF のポテンシャルを最大限に引き出し、アプリケーション開発やドキュメント管理の効率化を図るための手引きとなるでしょう。技術的な側面に興味がある開発者だけでなく、ビジネスでPDFを有効活用したい方にもおすすめの一冊です。

    MENU
    PAGE TOP