COS (Carousel Object Syntax)
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では公開されていない高度な機能の実装を可能にします。
