COS (Carousel Object Syntax)
COS(Carousel Object Syntax)は、PDFファイル内のすべてのデータの構造と構成を定義する基礎的なオブジェクト構文です。
COS(Carousel Object Syntax)は、PDFファイル内のすべてのデータの構造と構成を定義する基礎的なオブジェクト構文です。その名称はAdobeの「Carousel」プロジェクトに由来する歴史的なものですが、COSは ( 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内のすべての要素はCOSオブジェクトとその関係性を用いて表現されます。
COSは、PDFがすべてのコンテンツとメタデータを表現するために使用する低レベルのデータ構造言語です。8つの基本的なオブジェクトタイプを定義しています:ブール値、整数と実数、文字列、名前、配列、辞書、ストリーム、そしてnullオブジェクトです。これらのオブジェクトは有向グラフ構造を形成し、間接参照を通じて他のオブジェクトを参照することができ、単純なコンポーネントから複雑なドキュメント構造を構築することを可能にします。
Tagged PDFやコンテンツストリームなどの高レベルなPDF概念とは異なり、COSは構文レベルで動作します。つまり、PDFドキュメントを機械可読にするための文法と語彙を提供します。PDFライブラリを使用する開発者がCOSオブジェクトを直接操作することは稀ですが、COSの理解は、低レベルなPDF操作、不正なPDFのデバッグ、カスタムPDF処理ツールの実装において不可欠です。この構文は原理的にはドキュメントフォーマットに依存しませんが、PDFの要件に特化して設計されました。
COSの理解は、表面的なPDF操作を超えた作業が必要な開発者にとって極めて重要です。PDF生成の問題をデバッグする際、COSレベルの構造を調査することで、オブジェクトがどのように構成され参照されているかを正確に把握できます。カスタムPDFツールを構築したり、既存のライブラリを拡張したりする開発者にとって、COSの知識はPDF構造の直接操作、オブジェクトの再利用によるファイルサイズの最適化、高レベルAPIでは公開されていない高度な機能の実装を可能にします。
COSはアクセシビリティとコンプライアンス作業においても重要です。 ( 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 ) やTagged PDFなどの標準はCOSの基盤の上に構築されているためです。アクセシビリティ機能を実装したり、PDF/UAコンプライアンスを検証したりする際、開発者はCOSレベルの構造が、これらの標準で要求される論理的なドキュメント階層と関係性を正しく表現していることを確認する必要があります。
COSは、それぞれ一意なオブジェクト番号と世代番号で識別されるオブジェクトのシステムを使用してPDFデータを構成します。PDFファイル構造には、COSに基づく4つの主要コンポーネントが含まれています:ヘッダー(PDFバージョンの識別)、ボディ(すべてのCOSオブジェクトを含む)、相互参照テーブル(ランダムアクセスのための各オブジェクトへのバイトオフセットを提供)、トレーラー(ドキュメントカタログとその他の重要なオブジェクトを指す)です。
オブジェクトは直接(親オブジェクト内に埋め込まれる)または間接(独立して格納されオブジェクト識別子で参照される)のいずれかになります。この間接参照システムにより、オブジェクトの再利用が可能になります。例えば、単一のフォントオブジェクトを複数のページから参照できます。また、ドキュメント全体を書き直すことなく、PDFファイルへの増分更新が可能になります。
辞書は特に重要なCOSオブジェクトであり、構造化データの主要なコンテナとして機能します。辞書にはキーと値のペアが含まれ、キーは名前オブジェクト(スラッシュで始まる)で、値は任意のCOSオブジェクトタイプになります。ストリームは辞書を拡張してバイナリデータを追加するもので、ページ記述、画像、埋め込みフォントなどの圧縮されたコンテンツを格納するのに適しています。トレーラーから参照されるドキュメントカタログは、他のすべてのドキュメントコンテンツにアクセス可能なルート辞書として機能します。
- PDF File Structure(PDFファイル構造) – COSオブジェクトに基づいて構築された、ヘッダー、ボディ、相互参照テーブル、トレーラーを含むPDFファイルの全体的な構成
- Document Catalog(ドキュメントカタログ) – PDFのコンテンツと構造へのエントリーポイントとして機能するルートCOS辞書オブジェクト
- Indirect Object(間接オブジェクト) – 一意な識別子を持ち独立して格納され、複数の場所から参照できるCOSオブジェクト
- Content Stream(コンテンツストリーム) – ページコンテンツを記述するオペレータとオペランドのシーケンスを含むCOSストリームオブジェクト
- Dictionary(辞書) – 名前キーと値を関連付けるCOSオブジェクトタイプで、構造化された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
- (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
