Content stream
コンテントストリームは、グラフィックスオペレータとそのオペランドのシーケンスを含むPDFストリームオブジェクトであり、ページ上またはフォームXObject内でコンテンツをどのように描画すべきかを定義します。
コンテントストリームは、グラフィックスオペレータとそのオペランドのシーケンスを含むPDFストリームオブジェクトであり、ページ上またはフォームXObject内でコンテンツをどのように描画すべきかを定義します ( 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 ) 。これらのストリームは、テキスト、画像、ベクターグラフィックス、その他の視覚要素を描画するための特殊な描画コマンド言語を使用します。コンテントストリームはPDFのページ記述言語の中核を成し、構造化データをユーザーがPDF文書を閲覧する際に目にする視覚的表現に変換します。
コンテントストリームは、グラフィカルコンテンツを記述するオペレータとオペランドのシーケンスを含む、バイナリまたはASCIIエンコードされたストリームオブジェクトです。構造やメタデータを定義する他のPDFオブジェクトとは異なり、コンテントストリームにはPDFレンダラーによって実行される実際の描画命令が含まれています。PDFの各ページには通常、その/Contentsエントリによって参照される少なくとも1つのコンテントストリームがありますが、ページは順次処理される複数のコンテントストリームを持つこともできます
(
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
)
。
コンテントストリームは、いくつかの重要な点で他のPDFコンポーネントと異なります。文書構造要素が論理的な構成を記述し、Tagged Contentが意味論的な意味をマークアップするのに対し ( Citation: PDF Association, 2023 PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) 、コンテントストリームは視覚的なレンダリングのみに焦点を当てています。コンテンツが何を意味するかではなく、どのように表示されるべきかのみを記述します。コンテントストリームはメタデータストリームとも異なり、メタデータストリームはレンダリング命令ではなく記述情報を含んでいます。
コンテントストリーム内のオペレータは、後置記法のコマンド(オペランドがオペレータの前に来る)であり、グラフィックス状態を操作し、パスを描画し、テキストをレンダリングし、画像を表示します。これらのオペレータは大文字と小文字を区別し、PDF仕様で定義された特定の構文規則に従う必要があります。
コンテントストリームの理解は、PDFの生成、操作、レンダリングに携わる開発者にとって不可欠です。プログラム的にPDFを作成する際には、異なるPDFビューア間で正確な視覚出力を保証するために、適切な順序のオペレータを持つ有効なコンテントストリームを構築する必要があります。コンテントストリームの構文エラーは、レンダリングの失敗やプラットフォーム間での不一致な表示を引き起こす可能性があります。
アクセシビリティ機能を実装する開発者にとって、コンテントストリームはTagged PDF構造と重要な相互作用を持ちます ( 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 ) 。コンテントストリーム内のマークされたコンテンツオペレータは、視覚的コンテンツを論理構造ツリーにリンクし、支援技術が障害を持つユーザーに情報を意味のある形で提示できるようにします。コンテントストリームを適切に理解していなければ、開発者はPDF/UA要件を満たすアクセシブルなPDFを作成することができません。
コンテントストリームはパフォーマンスとファイルサイズにも影響します。効率的なオペレータの使用、適切な圧縮、冗長な状態変更の回避により、ファイルサイズを大幅に削減し、レンダリング速度を向上させることができます。PDFワークフローを最適化する開発者は、生成戦略について情報に基づいた決定を行うために、コンテントストリーム構造を理解する必要があります。
コンテントストリームは、スタックベースのグラフィックスモデルを通じて動作します。PDFレンダラーは、色、線幅、変換マトリックス、クリッピングパスなどの現在のプロパティを追跡するグラフィックス状態を維持します。コンテントストリーム内のオペレータは、この状態を変更するか、現在の状態を使用してコンテンツを描画します。
レンダリングプロセスは以下の原則に従います:
グラフィックス状態管理: q(保存)やQ(復元)などのオペレータは、グラフィックス状態をスタックにプッシュおよびポップし、後続の操作に影響を与えることなく一時的な状態変更を可能にします。これにより、特定のコンテンツに対する分離された変換とプロパティ変更が可能になります。
テキストレンダリング: テキストオペレータ(BTでテキスト開始、ETでテキスト終了、Tjでテキスト文字列表示)は、テキストオブジェクト内で動作し、現在のフォント、サイズ、テキスト状態パラメータを使用します。テキストの配置は、一般的な変換マトリックスとは別のテキストマトリックスを使用します。
パス構築と描画: パスオペレータ(mで移動、lで線、cで曲線)は、レンダリングせずに幾何学的形状を構築します。別個のストローク(S)またはフィル(f)オペレータが、現在の色と線のプロパティを使用して実際にパスを描画します。
マークされたコンテンツ: マークされたコンテンツオペレータ(BMC、BDC、EMC)は、コンテンツセクションの境界を作成し、アクセシビリティとリフローのために視覚要素を構造要素にリンクします。これらのオペレータはレンダリングには影響しませんが、意味的なコンテキストを提供します。
リソース参照: コンテントストリームは、リソースディクショナリにマッピングされる名前を通じて外部リソース(フォント、画像、パターン)を参照します。DoオペレータはXObjectを呼び出し、フォントオペレータは名前でフォントリソースを参照します。
PDF仕様は、オペレータの厳密な順序要件を定義しています。たとえば、テキスト表示オペレータはテキストオブジェクト内(BTとETの間)にのみ出現でき、特定の状態設定オペレータはパス定義内に出現できません。
- Graphics State – コンテントストリームがグラフィックスとテキストをレンダリングする方法を制御するパラメータの集合
- Page Object – コンテントストリームへの参照を含むページのプロパティを定義するディクショナリ
- Marked Content – 視覚的コンテンツを構造要素に関連付けるコンテントストリーム内のタグ付けされたセクション
- XObject – Doオペレータを使用してコンテントストリームから呼び出すことができる再利用可能なグラフィカルコンテンツ
- Resource 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
- 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
