トラスト・ソフトウェア・システム
ホーム > PDF Tools トップ > PDF Tools ライト > PDF 構文

PDF構文 (PDF Syntax ISO 32000-1)

PDF1.7は、ISO技術委員会によって2008年1月に“ISO 32000-1規格”として承認されました。
ここでは、その規格で説明されているPDFの構文(構造)について説明しています。 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つめの整数は、次のオブジェクトへのオフセット値です。これらの情報が、通常のクロスリファレンス テーブルと同様の情報となります。世代番号は記載されませんが、常に0と解されます。
オブジェクト番号は、増加するよう指定され、重複しません。

メタデータ」へ <<< >>>「クロスリファレンス ストリーム」へ


ご質問、お問い合わせ

メールで support@TrustSS.co.jp 宛てにお送りください。
または、質問のページからお送りいただくようお願いします。ご要望も承っております。(匿名で送れます。)




スリーソフト作者の方へ

PDF Easy Parseライブラリを無償で利用できるプログラムがあります。
こちらを参照してください。