Linearized PDF
Linearized PDFは、Web上での段階的な読み込みに最適化された特殊な構造を持つPDFファイルで、ドキュメント全体がダウンロードされる前に最初のページを表示できます。
Linearized PDFは、Web上での段階的な読み込みに最適化された特殊な構造を持つPDFファイルで、ドキュメント全体がダウンロードされる前に最初のページを表示できます。 ( Citation: N.A., 2020 (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) で定義されているように、Linearizationは、最初のページのレンダリングに必要なオブジェクトがファイルの先頭に配置されるようにPDFの内部構造を再編成します。この最適化は「Fast Web View」とも呼ばれ、バイトレンジリクエストを可能にすることで、ネットワーク経由でPDFドキュメントにアクセスする際のユーザーエクスペリエンスを向上させます。
Linearized PDFは、従来のPDFファイル構造を再編成し、最も重要なデータが特定の順序でファイルの先頭に配置されるようにします。オブジェクトが特定の順序なくファイル全体に散在している可能性がある標準的なPDFとは異なり、Linearized PDFでは、ドキュメントカタログ、最初のページのオブジェクト、アウトライン(ブックマーク)情報がファイルの先頭近くに配置されます ( Citation: N.A., 2020 (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) 。
Linearizationプロセスでは、ファイルの最初のオブジェクトとしてLinearization Dictionaryを追加します。これには、ページ境界とオブジェクトの位置をマッピングするヒントテーブルが含まれています。これにより、PDFリーダーはファイル構造全体を解析することなく、ページのレンダリングに必要な特定のバイトレンジを素早く特定してリクエストできます。また、ファイルにはドキュメントの先頭と末尾の両方に完全なクロスリファレンステーブルを含める必要があります。
Linearizationは、継続的な変更手法ではなく、PDF作成時または個別のLinearizationプロセスを通じて適用される一度限りの最適化という点で、標準的なIncremental Updateとは異なります。
Web開発者やアプリケーションアーキテクトにとって、Linearized PDFはHTTP経由でドキュメントを配信する際の体感パフォーマンスを大幅に向上させます。ユーザーは、数メガバイトのファイルが完全にダウンロードされるのを待つのではなく、数秒以内に最初のページを読み始めることができます。これは、モバイルユーザーや低速な接続環境のユーザーにとって特に重要です。
LinearizationはHTTP Rangeヘッダーを通じた効率的なバイトレンジリクエストを可能にし、サーバーが即座に表示する必要があるPDFの部分だけをストリーミングできるようにします。これにより、最初の数ページだけを表示する必要があるユーザーが完全なファイルダウンロードをトリガーすることがなくなり、帯域幅の消費とサーバー負荷が削減されます。
大規模なPDFレポートやドキュメントを配信するエンタープライズアプリケーションにとって、Linearizationは許容可能なレスポンスタイムを維持するために不可欠です。特に、ネットワークレイテンシがユーザーエクスペリエンスに大きな影響を与えるクラウドベースのドキュメント管理システムにおいて価値があります。
Linearizationプロセスは、PDFを厳密な順序で4つのセクションに再構成します:
- Linearization Dictionaryと最初のページのクロスリファレンス – Linearized構造に関するメタデータと、オブジェクトの位置を記述するヒントテーブルを含みます
- 最初のページのコンテンツ – ページオブジェクト、コンテンツストリーム、フォント、画像など、ページ1を表示するために必要なすべてのオブジェクト
- 残りのページ – 順次配置された他のすべてのページコンテンツ
- 共有オブジェクトとリソース – 複数のページで使用されるオブジェクトと完全なクロスリファレンステーブル
WebサーバーがLinearized PDFのリクエストを受信すると、ファイルの最初の部分を即座に送信できます。PDFビューアはLinearization Dictionaryを読み取り、どのバイトレンジに最初のページのオブジェクトが含まれているかを判断し、それらのレンジのみをリクエストします。ユーザーが後続のページに移動すると、ビューアは必要に応じて追加のバイトレンジをリクエストします。
Linearization Dictionary内のヒントテーブルは重要な情報を提供します:ページオフセットヒントは各ページの開始位置を示し、共有オブジェクトヒントはページ間で使用されるリソースを識別し、サムネイルヒントはページプレビュー画像の位置を特定します。このメタデータにより、ビューアはファイル構造全体を解析することなく、正確なバイトレンジリクエストを行うことができます。
Linearizationは、重複するクロスリファレンステーブルとヒントテーブルのオーバーヘッドにより、ファイルサイズをわずかに増加させますが、このコストは通常、パフォーマンス上の利点と比較すると無視できる程度です。
- Cross-Reference Table – PDFファイル内のオブジェクトの位置をマッピングするインデックス構造
- Incremental Update – ファイル全体を書き直すことなくPDFに変更を追加する方法
- Object Stream – 効率的なストレージのために複数のPDFオブジェクトを含む圧縮されたストリーム
- Page Tree – PDFドキュメント内のページオブジェクトを整理する階層構造
- PDF Object – Dictionary、配列、ストリームなど、PDFファイルの基本的なデータ構造
- (N.A.) (2020)
- (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html
