ポータブル ドキュメント フォーマット (PDF) は、フォント、メタデータ、カラー プロファイルなどのテキスト情報、グラフィック情報、技術情報などで構成されたコンテナーです。PDF の普及により、PDF ファイルを生成したり編集したりするソフトウェアは増え続けています。そして今日では、非常に多くの PDF ファイル作成ソフトウェアやアプリケーションが存在しています。
しかし、すべての PDF が同じように作成されるわけではありません。
それぞれのソフトウェア製品やアプリケーションは、PDF を編集することに焦点をあて、PDF ファイルへの書き込みを目的として作られています。そのため、PDF の書き出し処理では、PDF 文書の整合性を維持することよりも、手早くファイル編集、書き込みができる方法を重視する傾向があります。結果として、PDF/A および PDF/X 規格に準拠した有効な PDF が作成されますが、以下のような不一致が発生する可能性があります。
・無効なページ
・無効な画像
・無効なハイパーリンク
・サポートされないフォント
PDF ファイルでは、読み書きのためにさまざまなソフトウェアを使用し、それを他のユーザーと共有したり、さまざまなアプリケーションで処理していくなかで、上記のような問題点が発生することがあります。こうしたケースでは、なぜか驚くほどファイル サイズが肥大化することがよくあります。アプリケーションで複数のページを削除したのに、ファイル サイズは依然として肥大化する、といったこともあります。また、これらの PDF ファイルは Acrobat Reader での読み込みに時間がかかったり、使用しているソフトウェア環境でまったく読み込めない場合もあります。
PDF を最適化してファイル サイズを縮小させるための一番の方法は、ファイル内部のゴミを除去することです。これは、PDF ファイルを操作する手段と時間があれば、プログラム的に簡単にできるかもしれません。
BCL easyPDF SDK 製品では、この問題を解決するための機能が提供されています。製品には、PDF を最適化して、内部の構成を整理できる 2 つの関数があります。
void Optimize(string InputFileName, string OutputFileName, string Password)
void Optimize2(string InputFileName, string OutputFileName, string Password, int Flags, string AdvancedOptions)
これらの関数は、PDF ファイルを解析し、使用されていない項目をチェックし、それらを PDF ファイルから物理的に除去します。さらに、PDF ファイル内のすべての埋め込みオブジェクトの整合性もチェックします。また、PDF ファイルが暗号化されている場合、これらの関数に Password パラメーターを使用することもできます。Optimize2 関数では、PieceInfo と呼ばれるプライベート アプリケーション データと XMP メタデータを除去するかどうかを指定する Flags パラメーターを使用します。これらの関数は、ソフトウェアで PDF を処理する際に明示的に呼び出すこともできますし、ライブラリ内の他のメソッドを呼び出した後に自動的に呼び出すこともできます。これは、Boolean 型の OptimizeAfterEachProcess によって制御できます。
このように、PDF のソースがどのようなものであっても、BCL easyPDF SDK のライブラリにより PDF の最適化された状態を維持し、アプリケーションの負荷を軽減することができます。結果的に、わずか数行のコードによって、同じ PDF をより小さいファイル サイズで同じ品質、かつ、短時間で印刷やアーカイブできるようになります。
いますぐ BCL easyPDF SDK 製品の無料体験版をダウンロードして、PDF の最適化機能を体験してみてください。
記事参照 : BCL easyPDF SDK