Dictionary object
Dictionary objectは、PDFにおける基本的なデータ構造で、キーと値を対応付け、二重山括弧`<< ... >>`で囲まれます。
Dictionary 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
)
によると、dictionaryはPDFファイル構造の骨格を形成する基本的なオブジェクトタイプの1つです。PDFドキュメント全体でメタデータ、パラメータ、構造情報を整理するための主要なメカニズムとして機能します。
Dictionary objectは、キーと値のペアを含む連想テーブルです。キーは常にname object(スラッシュで始まる)であり、値は任意のPDFオブジェクトタイプを取ることができます。構文は二重山括弧を区切り文字として使用します:<< /Key1 value1 /Key2 value2 >>。例えば、シンプルなdictionaryは<< /Type /Page /MediaBox [0 0 612 792] >>のようになります。
Dictionary objectは、array object(角括弧を使用し順序付きシーケンスを格納)やstream object(dictionaryとバイナリデータを組み合わせたもの)とは異なります。数値インデックスを使用するarrayとは異なり、dictionaryは名前付きキーを使用して特定の値に直接アクセスします。このキーと値の構造により、dictionaryはページ、フォント、注釈、ドキュメントカタログなど、複数のプロパティを持つオブジェクトを表現するのに最適です。
PDF生成、操作、解析に携わる開発者にとって、dictionary objectの理解は不可欠です。なぜなら、PDFのほぼすべての構造要素がdictionaryによって定義されているからです。ページオブジェクト、フォント記述子、インタラクティブフォームフィールド、ドキュメントカタログは、すべてdictionaryとして表現されます。プログラムで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 ) で規定された正しいキーと値のタイプで、適切にフォーマットされたdictionary objectを構築する必要があります。
Dictionaryの構造を誤解すると、無効なPDFやアクセシビリティの問題につながる可能性があります。例えば、 ( Citation: PDF Association, 2023 PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) は、Tagged PDF構造が論理的なドキュメント構造を定義するためにdictionaryに大きく依存していることを強調しており、アクセシブルなドキュメントにとって正確なdictionary実装が重要であることを示しています。
Dictionary objectは、PDFファイル構造内でハッシュテーブルとして機能します。各キーはname object(/で始まる)でなければならず、1つのdictionary内のキーは一意である必要があります。値は任意のPDFオブジェクトタイプを取ることができます:数値、文字列、名前、array、他のdictionary、stream、あるいはファイル内の他の場所にあるオブジェクトへの間接参照などです。
Dictionaryはネストされた構造をサポートしており、複雑な階層的データ構成が可能です。例えば、Page dictionaryはResources dictionaryを含み、それ自体がFontとXObject dictionaryを含みます。/Typeキーは、オブジェクトタイプを識別するためにdictionary内によく現れ、/Subtypeはさらなる分類を提供します。
一部のdictionaryには、PDFが有効であるために必須のエントリがありますが、他のdictionaryではオプションのエントリが許可されています。PDFプロセッサは、山括弧の間でキーと値のペアを順次解析することでdictionaryを読み取りますが、dictionary内のエントリの順序は一般的に重要ではありません。PDFが解析されると、dictionaryはルックアップテーブルとしてメモリにロードされ、ドキュメントのプロパティとリソースへの効率的なアクセスが可能になります。
- Name object –
/で始まる文字列で、dictionaryキーまたは識別子として使用される - Stream object – Dictionary(メタデータを含む)とバイトシーケンスの組み合わせ
- Array object – 角括弧で囲まれたオブジェクトの順序付きコレクション
- Indirect object – PDF内の複数の場所から参照できる番号付きオブジェクト
- Document catalog – ドキュメント構造を定義するPDFのルートdictionary
- (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/
