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では公開されていない高度な機能の実装を可能にします。
CropBoxは、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
)
。これによりページの可視境界が決定され、開発者はページコンテンツのどの部分をエンドユーザーに表示するかを制御できます。CropBoxが存在する場合、デフォルトの可視領域(通常はMediaBoxで定義される)を上書きします。
CropBoxは、PDF仕様で定義されている複数のページ境界ボックスの1つです
(
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
)
。これは、ページの座標系で指定された矩形領域を表し、ページコンテンツのクリッピング領域を定義します。ページメディアの物理的な寸法を定義するMediaBoxとは異なり、CropBoxは、ページが画面に表示されたりプリンタに送信されたりする際に、そのコンテンツのどの部分が可視になるかを具体的に決定します。
DCTDecodeは、JPEG(離散コサイン変換)圧縮アルゴリズムを使用して画像データをエンコード・デコードする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
)
で定義されているように、PDF文書にJPEG圧縮画像を再圧縮することなく直接埋め込むことができ、元のJPEGエンコーディングを保持します。このフィルタは、PDFファイル内の写真や連続階調画像に対して最も一般的に使用される圧縮方法の一つです。
DCTDecodeは、JPEG基本エンコーディング規格(ISO/IEC 10918-1)を実装した非可逆圧縮フィルタです。FlateDecodeなどの可逆フィルタとは異なり、DCTDecodeは周波数領域変換を使用して、人間の目に知覚されにくい視覚情報を選択的に破棄することで高い圧縮率を実現します。PDFプロセッサがDCTDecodeを使用したストリームに遭遇すると、JPEG展開を適用して画像データを再構築します。
このフィルタは、緩やかな色の変化が一般的な写真などの連続階調画像専用に設計されています。スキャンされた文書などの2値(白黒)画像に最適化されたJBIG2DecodeやCCITTFaxDecodeといったフィルタとは異なります。DCTDecodeは品質設定や色空間情報を含む元のJPEGエンコーディングパラメータを維持するため、既存のJPEGファイルを再エンコーディングによる品質劣化なしに埋め込むのに最適です。
PDF生成または操作を行う開発者にとって、DCTDecodeを理解することは、許容可能な画像品質を維持しながらファイルサイズを最適化するために重要です。写真や複雑なグラフィックスを埋め込む際、DCTDecodeを使用すると、非圧縮または可逆圧縮方式と比較してPDFファイルサイズを大幅に削減でき、文書の転送と保存を高速化できます。
Decode arrayは、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
)
で規定されているように、この配列は各カラーコンポーネントに対して線形マッピング関数を提供し、開発者が基礎となるピクセル値を変更することなく、画像サンプルデータの解釈を反転、スケール、または調整できるようにします。Decode arrayは、非標準のカラー解釈が必要な画像を扱う場合や、反転した画像データを保存してファイルサイズを最適化する場合に特に有用です。
Decode arrayは、PDF画像辞書内の数値ペアのシーケンスで、画像のカラースペースにおける各カラーコンポーネントに対して1つのペアが存在します。各ペアは、そのコンポーネントの最小出力値と最大出力値を定義する2つの値[Dmin, Dmax]で構成されます。PDFプロセッサが画像をレンダリングする際、最小サンプル値(通常は0)をDminにマッピングし、最大サンプル値をDmaxにマッピングし、中間値は線形補間されます。
例えば、8ビットサンプル(値0〜255)を持つDeviceGray画像の場合、デフォルトのDecode arrayは[0 1]であり、サンプル値0が黒(0.0)にマッピングされ、255が白(1.0)にマッピングされることを意味します。Decode arrayが[1 0]の場合は画像が反転され、0が白に、255が黒にマッピングされます。RGB画像の場合、Decode arrayには6つの値が含まれます:[Rmin Rmax Gmin Gmax Bmin Bmax]。
DecodeParms は、圧縮またはエンコードされたストリームデータを正しくデコードするために必要な追加パラメータを指定する PDF 辞書エントリです。PDF ストリームがデータの圧縮またはエンコードに 1 つ以上のフィルタを使用する場合、DecodeParms はデコード処理時にそのプロセスを逆転させるために必要なフィルタ固有の設定を提供します
(
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
)
。このパラメータにより、圧縮されたコンテンツを正確に解凍し、元の形式に復元できることが保証されます。
DecodeParms は、ストリーム辞書内のオプションエントリであり、Filter エントリで指定されたフィルタのパラメータを含みます。単一の辞書(1 つのフィルタが適用される場合)または辞書の配列(複数のフィルタが順次適用される場合)のいずれかの形式を取ることができます。各辞書には、対応するフィルタの要件に固有のキーと値のペアが含まれます。たとえば、Flate エンコードされたストリームには予測関数を指定する DecodeParms が含まれる場合があり、JBIG2 エンコードされた画像ストリームにはグローバルデータセグメントを指すパラメータが含まれます。
DICOM(Digital Imaging and Communications in Medicine)は、医療画像の管理、保存、伝送のためのファイル形式と通信プロトコルの両方を定義する、広く採用されている国際標準です。
(
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文書に埋め込まれた場合、DICOMファイルにより、X線、CTスキャン、MRIなどの診断画像をポータブルドキュメントワークフローに含めることが可能になります。これらの画像には、時系列データまたは立体データセットを表すマルチフレームシーケンスが含まれることがよくあります。
DICOMは、ファイル形式(通常は.dcm拡張子)であると同時に、全米電機工業会(NEMA)が管理する包括的な標準規格であり、医療画像機器が診断画像と患者データをどのように取得、保存、交換するかを規定しています。ピクセルデータのみを保存するJPEGやPNGなどの一般的な画像形式とは異なり、DICOMファイルは画像データと共に、患者情報、取得パラメータ、機器詳細、画像ジオメトリなどの広範なメタデータをカプセル化します。DICOMファイルには単一の画像または複数のフレームが含まれる場合があり、心臓のシネループやマルチスライスCTボリュームのような画像シーケンスの表現に適しています。PDF文書に組み込まれる場合、DICOMコンテンツはインライン画像XObjectまたはファイル添付として埋め込むことができ、
(
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は、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] >>のようになります。
PDF Association(pdfa.org)は、PDF標準とベストプラクティスの開発および普及を担当する国際組織です。PDF仕様に関してISOと緊密に協力する業界団体として、PDF Associationは、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
)
。この組織は、PDF/A、PDF/UA、Tagged PDFなど、さまざまなPDF標準のワーキンググループを運営しています。
PDF Associationは、世界中のPDF技術における中心的な権威および提唱団体として機能する会員制組織です。PDF関連のISO標準の開発を調整し、Tagged PDF Best Practice Guide
(
Citation: PDF Association, 2023
PDF Association(2023). Retrieved from
https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/
)
などの補足文書を公開することで、開発者が複雑な仕様を理解し実装することを支援しています。正式な標準を公開するISO自体とは異なり、PDF Associationは、PDF/UA-1
(
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
)
などのPDF仕様に取り組む開発者向けに、実用的な実装ガイダンス、教育リソース、コミュニティサポートを提供します。この組織は、ホワイトペーパー、技術ノート、標準実装を明確化するベストプラクティスガイドを提供することで、正式なISO標準文書と現実の開発者ニーズとのギャップを埋めています。
Embedded fileとは、PDFドキュメント内に独立したデータストリームとして保存される、完全な非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
)
によれば、embedded filesによってPDFドキュメントは複数のファイルタイプのコンテナとして機能し、ユーザーはソースデータ、補足ドキュメント、マルチメディアファイルなどの関連アセットを、主要なPDFコンテンツと共にパッケージ化できます。この機能により、PDFは単純なドキュメント形式から、関連ファイル間の関係性を維持するポータブルアーカイブへと変化します。
Embedded fileとは、PDFの内部構造に保存されるバイナリファイルストリームであり、PDFの可視ページコンテンツとは区別されます。電子メールシステムの添付ファイルとは異なり、embedded filesはPDFファイル自体の不可欠な部分となり、全体のファイルサイズは増加しますが、関連ファイルが単一のユニットとして一緒に移動することを保証します。PDF仕様では、embedded file streamsは、元のファイル名、MIMEタイプ、作成日、変更日などのメタデータと共に実際のファイルデータを含む辞書オブジェクトとして定義されています。
Embedded filesは、同じくPDF内に保存されるインライン画像やフォントとは異なります。これらはドキュメントの視覚的表示の一部として直接レンダリングされますが、embedded filesは、ユーザーがPDFビューアの添付ファイルパネルやアノテーションを通じて明示的にアクセスするまで休止状態のままです。Embedded filesは元のファイル形式を維持し、PDFコンテナから独立して抽出および使用できます。
PDF生成および処理を行う開発者にとって、embedded filesはいくつかの実用的な利点を提供します。外部ファイル参照やネットワーク上の場所に依存しない自己完結型のドキュメントパッケージの作成を可能にし、これはアーカイブコンプライアンスや長期的なドキュメント保存において重要です。これは特に、すべての補足ドキュメントを含む完全な記録の維持が求められる規制環境において重要です。
Enhanced Metafile(EMF)は、Microsoftが古いWindows Metafile(WMF)形式の後継として開発した32ビットグラフィック形式です。デバイス非依存のコンテナとして機能し、ベクターグラフィックスとラスターグラフィックスの両方のデータを格納できるため、Windowsアプリケーションにおけるグラフィックス表現の一般的な形式となっています。ドキュメントをPDFに変換する際、特にMicrosoft Officeアプリケーションからドキュメントを処理する場合、EMFファイルは中間表現として頻繁に使用されます
(
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
)
。
EMFは、主にWindowsの印刷システムとグラフィックスレンダリングで使用されるスプールファイル形式です。BMPやJPEGのような純粋なラスター形式とは異なり、EMFファイルには画像を再構築する方法を記述するGraphics Device Interface(GDI)コマンドのレコードが含まれています。このコマンドベースの構造により、EMFファイルはベクターコンポーネントのスケーラビリティを維持しながら、埋め込みビットマップデータもサポートできます。
EMFは、32ビット操作のより良いサポート、色深度の向上、より洗練されたグラフィックスプリミティブなど、強化された機能を提供することで、前身のWMFとは異なります。また、EMFはWindowsプラットフォームに特化しているのに対し、Portable Document Format(PDF)はプラットフォーム非依存のドキュメント形式として設計されているという点でPDFとも異なります。EMFコンテンツをPDFドキュメントにインポートする際、GDIコマンドはPDF独自のグラフィックス演算子とコンテンツストリームに変換される必要があります。
PDF生成やドキュメント変換に携わる開発者にとって、EMFの理解は非常に重要です。なぜなら、WindowsベースのドキュメントワークフローにおいてEMFは中間形式として頻繁に登場するからです。ユーザーがドキュメントをPDFに印刷したり、Officeドキュメントを変換したりする際、Windowsの印刷サブシステムはEMFファイルを生成することが多く、これらは適切に解釈されてPDFコンテンツに変換される必要があります。