COSName
COSNameは、Apache PDFBoxにおいて、PDFの低レベルなCarousel Object Structure(COS)モデルにおける名前オブジェクトを表現する基本的なクラスです。
COSNameは、Apache PDFBoxにおいて、PDFの低レベルなCarousel Object Structure(COS)モデルにおける名前オブジェクトを表現する基本的なクラスです。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 ) において、名前オブジェクトは文字列によって一意に定義されるアトミックなシンボルであり、COSNameはこれらのオブジェクトのJava表現を提供します。このクラスは、文書構造、メタデータ、リソースを定義するエントリのキーとして名前が使用されるPDF辞書を扱う上で不可欠です。
COSNameは、Apache PDFBoxのJavaクラスであり、
(
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
)
で定義されている8つの基本オブジェクトタイプの1つであるPDF名前オブジェクトをカプセル化します。文字列とは異なり、PDF名前オブジェクトは主にPDF辞書のキーとして使用されるアトミックなシンボルとして扱われます。COSNameクラスは、一般的なPDF名前(/Type、/Resources、/Fontなど)の静的定数と、カスタム名前オブジェクトを作成するメソッドを提供します。各COSNameインスタンスは、PDFシンタックスにおいて先頭にスラッシュを持つ特定のPDF名前(例:/PageModeや/StructTreeRoot)を表現しますが、Java APIの使用時にはスラッシュは省略されます。これは、テキストデータを表現するCOSStringや数値を表現するCOSIntegerとは異なり、COSNameは文書要素やプロパティを参照するシンボル識別子を専門的に扱います。
PDF操作を行う開発者にとって、COSNameの理解は極めて重要です。なぜなら、このクラスが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 ) を扱う際、開発者はCOSNameオブジェクトを使用して構造ツリー要素、ロールマッピング、アクセシビリティプロパティにアクセスする必要があります。このクラスにより、開発者はプログラム的にPDF辞書をナビゲートし、文書メタデータを取得し、ページリソースにアクセスし、文書構造を操作することができます。定義済みのCOSName定数を使用することで、コードの可読性が向上し、名前文字列のタイプミスによるエラーを防ぐことができます。また、カスタムCOSNameオブジェクトを作成する機能により、特殊なPDF拡張やベンダー固有の辞書エントリとのやり取りが可能になります。
COSNameは、PDF名前を表す文字列値をラップする不変オブジェクトとして動作します。Apache PDFBoxは、
(
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名前に対して、COSNameクラス内に多数の静的final定数(COSName.TYPE、COSName.PAGES、COSName.STRUCT_TREE_ROOTなど)を提供しています。getDictionaryObject()やsetItem()などのメソッドを使用してPDF辞書にアクセスする際、開発者はCOSNameインスタンスをキーとして渡します。例えば、ページのリソース辞書にアクセスするには、COSName.RESOURCESをキーとして使用します。このクラスは、PDF仕様に従って、標準ASCII印字可能範囲外の文字に対する16進エスケープシーケンスを含む、PDF名前における特殊文字のエンコードとデコードを処理します。Tagged PDF構造
(
Citation: PDF Association, 2023
PDF Association(2023). Retrieved from
https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/
)
を扱う際、COSNameオブジェクトは、文書コンテンツの意味的構造を定義する構造タイプ、属性、ロールマッピングを識別します。
- COS(Carousel Object Structure) – Apache PDFBoxがPDF文書構造を表現するために使用する低レベルオブジェクトモデル
- COSDictionary – キーと値のペアを格納するためにCOSNameオブジェクトをキーとして使用するPDF辞書オブジェクト
- COSObject – COSName、COSString、COSArrayを含む、Apache PDFBoxにおけるすべてのCOSオブジェクトの基底クラス
- PDDocument – COSオブジェクトの上に構築された、完全なPDF文書を表現するApache PDFBoxの高レベルクラス
- Structure Tree(構造ツリー) – 要素タイプと属性を識別するためにCOSNameオブジェクトを使用する、Tagged 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
