PDF 構文 オブジェクトストリーム

PDF構文 (PDF Syntax ISO 32000-1)

PDF1.7は、ISO技術委員会によって2008年1月に“ISO 32000-1規格”として承認されました。(2017年7月にはPDF2.0の規格ISO3200-2が承認されています。)
ここでは32000-1規格で説明されているPDF1.7の構文(構造)について説明しています。
PDFファイルは8-bitデータを単位として構成されていて一般の文書編集アプリケーションで開くことができその内容を読取ることができます。ただし、バイナリのデータもそのまま(表示可能な文字に変換されずに)格納されていますので文字化けしているように表示されますが、これはPDFの仕様です。
ここではそのデータの一部を読み解くことでPDF文書へのデータ追加などPDF再構成の意味を説明し、PDF-ToolsでのPDFデータ解析や編集をより詳細にできるようにします。

7.オブジェクト ストリーム (Object Stream)

オブジェクト ストリームには数多くの連続したPDFオブジェクトを圧縮して格納できます(PDF-1.5以降のバージョン)。ストリーム内のオブジェクトは圧縮されたオブジェクトといいます。
ストリームを伴ったこのオブジェクトはストリーム オブジェクトと同様の形式をしています。しかし、オブジェクト ストリーム(Object Stream)はストリーム オブジェクト(Stream Object)ではありませんので注意してください。この2つは語順の違いで区別されます。
オブジェクト ストリーム内のオブジェクトは通常の名前付きオブジェクト(番号で識別されたオブジェクト)と同様にオブジェクト番号と世代番号(常にゼロです)で参照できます。そのために、オブジェクト ストリームにはクロスリファレンス テーブルと同様の情報が含まれています。
PDF文書の暗号化オブジェクト(PDFが暗号化されていることを示すオブジェクト)をオブジェクト ストリームに含めることはできません。
オブジェクト ストリームのディクショナリにはLength項目が含まれておりその大きさが示されています。オブジェクト ストリームはインダイレクト オブジェクトです。
オブジェクト ストリームのディクショナリにはストリーム オブジェクトのディレクトリの項目に加えて以下が追加されます。

キータイプ
Typename(必須)"ObjStm"を指定
Ninteger(必須)ストリームに含まれる、オブジェクトの数
Firstinteger(必須)伸張(デコード)されたストリームの最初のオブジェクトのオフセット値
Extendsstream(オプション)ストリームを拡張します。

オブジェクトのタイプは「2.5オブジェクト」を参照してください。

ストリームのFirst項目で示された位置からはN組の整数のペアが記載されます。このペアの最初の整数はオブジェクト番号で、2つめの整数は次のオブジェクトへのオフセット値です。 これらの情報が通常のクロスリファレンス テーブルと同様の情報となります。
オブジェクト番号は増加するよう指定され重複しません。

ご質問 ・ お問い合わせ

 メールで support@TrustSS.co.jp 宛てに、または 質問のページからお送りいただくようお願いします。
ご要望も受け付けております。


PDF Toolsライト

PDF 構文解説

(ISO32000-1より)

PDF Tools製品概要