Page object
Page objectは、PDF文書内の単一ページのプロパティとコンテンツを定義する辞書です。
Page objectは、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 ) で規定されているように、各page objectにはページの寸法(MediaBox)、視覚的なコンテンツストリーム(Contents)、フォントや画像などの利用可能なリソース(Resources)といった重要な情報が含まれます。Page objectは、文書内のすべてのページを整理するPDFのページツリー構造の基本的な構成要素となります。
Page objectは、PDF文書内の個別のページを表すPDF辞書型です。組織的なコンテナとして機能するページツリーノードとは異なり、page objectは常にページツリー階層のリーフノードであり、実際のページ属性とコンテンツを含みます。
Page object辞書には、Type(必ず/Pageである必要があります)やParent(ページツリーノードへの参照)などの必須エントリが含まれます。また、ページの特性を定義する重要なオプションエントリも含まれます:MediaBox(ページの境界を定義)、Contents(ページのマーキング操作を含む1つ以上のコンテンツストリーム)、Resources(コンテンツストリームが必要とするフォント、画像、グラフィック状態などのリソースの辞書)。追加のエントリは、ページの回転、crop box、注釈、メタデータ、Tagged PDFの構造要素などを指定できます。
各page objectは、明示的に定義されていない場合、ページツリーの親ノードから特定の属性を継承します。これにより、複数のページが共通のプロパティを共有する場合に効率的な保存が可能になります。
PDFの生成や操作を行う開発者にとって、page objectを理解することは以下の理由から不可欠です:
コンテンツの作成と変更:プログラムでPDFを作成または編集する際、開発者は適切なエントリを持つ有効なpage object辞書を構築する必要があります。ページコンテンツの追加、削除、変更を行うあらゆる操作には、page objectとの直接的なやり取りが必要です。
リソース管理:Page object内のResources辞書は、ページのコンテンツストリームで利用可能なフォント、画像、その他のアセットを決定します。適切なリソース管理により、レンダリングエラーを防ぎ、ファイルサイズを最適化します。
アクセシビリティへの準拠:PDF/UA準拠文書 ( Citation: N.A., 2014 (N.A.). (2014). Document management applications — Electronic document file format enhancement for accessibility — Part 1: Use of ISO 32000-1 (PDF/UA-1) . International Organization for Standardization Retrieved from https://www.iso.org/standard/64599.html ) の場合、page objectは文書の構造ツリーと適切に統合されている必要があり、これにより支援技術がページコンテンツを正確に処理できるようになります。
レイアウト制御:Page objectは、ページの寸法、回転、さまざまなボックス境界(MediaBox、CropBox、BleedBox)を含む重要なレイアウトプロパティを定義します。これらのプロパティを理解することは、さまざまな表示および印刷シナリオにおいて正確なページレイアウト制御を行うために必要です。
Page objectは、PDFレンダラーがページコンテンツを表示するために使用するデータコンテナとして機能します。レンダリングプロセスは、以下の一般的なワークフローに従います:
辞書構造:Page objectは、キーと値のペアを持つPDF辞書として構造化されています。Typeエントリはそれをページとして識別し、Parentエントリはそれをページツリー構造にリンクします。MediaBoxエントリ(直接または継承のいずれかで必須)は、ユーザー空間単位(通常1/72インチ)でページの物理的寸法を定義します。
コンテンツストリーム:Contentsエントリは、ページの実際の描画命令を含む1つ以上のコンテンツストリームを参照します。これらのストリームは、PDFのグラフィックス演算子を使用して、テキスト、パス、画像、その他の視覚的要素を記述します。単一のページには、順次処理される複数のコンテンツストリームが存在する場合があります。
リソース解決:コンテンツをレンダリングする前に、PDFプロセッサはResources辞書を調べて、利用可能なリソースのマッピングを構築します。コンテンツストリーム演算子がリソース(フォントや画像など)を名前で参照すると、プロセッサはこの辞書でそれらを検索します。リソースは、page objectで定義されていない場合、親ページツリーノードから継承できます。
座標系とボックス:MediaBoxはページの座標系を確立します。CropBox(表示可能領域)、BleedBox(印刷制作用)、ArtBox(意味のあるコンテンツ領域)などの他のオプションのボックスエントリは、MediaBox内またはそれを超えるサブリージョンを定義します。Rotateエントリは、90度単位のページ回転を可能にします。
文書構造との統合:Tagged PDF ( Citation: PDF Association, 2023 PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) では、page objectはコンテンツストリーム内のマークされたコンテンツシーケンスを通じて論理構造ツリーに接続され、視覚的外観を超えた意味的意味と読み取り順序を可能にします。
- Page tree – PDF文書内のすべてのpage objectを整理する階層構造
- Content stream – ページに表示されるものを定義するグラフィックス演算子のシーケンス
- Resources dictionary – ページコンテンツ内で使用するためのフォント、画像、その他のアセットのコレクション
- MediaBox – ページの物理的寸法を定義する境界ボックス
- Tagged PDF – アクセシビリティとコンテンツの再利用を可能にする構造的および意味的情報を持つ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
- PDF Association (2023)
- PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/
- (N.A.) (2014)
- (N.A.). (2014). Document management applications — Electronic document file format enhancement for accessibility — Part 1: Use of ISO 32000-1 (PDF/UA-1) . International Organization for Standardization Retrieved from https://www.iso.org/standard/64599.html
