ClassMap(クラスマップ)
ClassMapは、構造ツリーのルートに定義される辞書で、Tagged PDF要素の属性セットを再利用可能な形で定義します。
ClassMapは、構造ツリーのルートに定義される辞書で、Tagged PDF要素の属性セットを再利用可能な形で定義します。複数の構造要素にわたって同じ属性定義を繰り返すのではなく、ClassMapを使用することで、開発者は名前付き属性クラスを一度定義し、文書構造全体で参照できます ( 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 ) 。このメカニズムにより、冗長な属性指定を排除することで、Tagged PDF文書の一貫性が促進され、ファイルサイズが削減されます。
ClassMapは、構造ツリーのルート辞書内のオプションエントリで、クラス名(キー)を属性オブジェクト(値)にマッピングします。各エントリは、クラス名とそれに対応する属性オブジェクトで構成され、属性オブジェクトには言語、テキストの配置、色、または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 ) 。
ClassMapは、各構造要素に属性辞書を直接埋め込むのではなく、クラス名を通じた間接的な参照を可能にする点で、直接的な属性割り当てとは異なります。構造要素に/C(Class)エントリが含まれている場合、ClassMapで定義された1つ以上のクラス名を参照し、それらの属性を効果的に継承します。これは、スタイル定義がコンテンツマークアップから分離されるWeb開発のCSSクラスと概念的に類似しています
(
Citation: PDF Association, 2023
PDF Association(2023). Retrieved from
https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/
)
。
複数の構造要素が同じクラス名を参照でき、類似した要素全体で一貫した属性の適用が保証されます。構造要素は複数のクラスを参照でき、直接指定された属性と組み合わせる場合、PDFは特定の優先順位ルールに従ってどの属性値を適用するかを決定します。
Tagged PDF文書を作成または操作する開発者にとって、ClassMapは重要な実用的利点を提供します。繰り返しの属性定義を排除することで文書のファイルサイズを削減します。これは、共通の属性を共有する数千のタグ付き要素を持つ大規模な文書では特に重要です。この最適化は、文書処理速度とストレージ要件に直接影響します。
また、ClassMapは属性定義を一元化することで保守性を向上させます。複数の要素にわたってスタイルや動作属性を更新する必要がある場合、個々の構造要素を更新する必要はなく、単一のClassMapエントリを変更するだけで文書全体に変更が伝播されます。この一元化されたアプローチにより、アクセシビリティや文書レンダリングに影響を与える可能性のある不整合のリスクが軽減されます。
アクセシビリティコンプライアンスの観点では、ClassMapは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 ) 。類似した要素全体で言語仕様、テキスト装飾プロパティ、またはテーブルヘッダーを実装する際、ClassMapは均一な処理を保証し、要素ごとの手動属性指定から生じる可能性のあるアクセシビリティ違反のリスクを軽減します。
ClassMapは構造ツリーのルート辞書内に配置され、文書カタログの/StructTreeRootエントリを介してアクセスできます。ClassMap自体は辞書であり、各キーはクラス名を表す名前オブジェクトで、各値は適用される属性を含む属性オブジェクト辞書です。
構造要素がClassMapの属性を使用する必要がある場合、/Cエントリを含めます。その値は、ClassMap内のクラス名に対応する単一の名前または名前の配列です。PDFプロセッサは、これらのクラス名に関連付けられた属性オブジェクトを取得し、構造要素に適用します。
複数のソースが同じ属性を提供する場合、属性の解決は特定の優先順位に従います:
- 構造要素の属性辞書で直接指定された属性が最も優先される
/Cエントリにリストされたクラスの属性(配列内の前のクラスが後のクラスより優先される)- 親構造要素から継承された属性
- PDF仕様で定義されたデフォルト値
たとえば、ClassMapが「Heading1」という名前のクラスをフォントサイズと色の属性で定義している場合、/C /Heading1を持つ構造要素は、明示的にオーバーライドされない限り、これらの属性を継承します。要素が/C [/Heading1 /Important]のように複数のクラスを参照する場合、競合する属性名については「Heading1」の属性が「Important」より優先されます。
ClassMapで参照される属性オブジェクトは、Tagged PDFの他の場所で使用される属性オブジェクトと同じ構造に従い、通常、属性の名前空間を識別する/O(Owner)エントリと、その名前空間に適したキーと値のペアを含みます
(
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
)
。
- Structure Tree(構造ツリー) – 文書構造と読み取り順序を定義する、タグ付きコンテンツ要素の階層ツリー
- Attribute Object(属性オブジェクト) – 構造要素の特性を記述するプロパティを含む辞書
- Structure Element(構造要素) – 文書階層内のコンテンツのセマンティック単位を表す構造ツリー内の個別ノード
- PDF/UA – 適切なタグ付けと属性に依存するアクセシブルなPDF文書のISO標準
- Tag(タグ) – 文書階層内の構造要素の役割とセマンティックな意味を識別するラベル
- (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
