トラスト・ソフトウェア・システム
ホーム > 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データ解析や編集をより詳細にできるようにします。

ドキュメント カタログ」へ <<< >>>「メタデータ」へ


5.1 デスティネーション(Destinations)

デスティネーション(Destination)は、どのページを表示するか、そのページをどのように表示するか、表示する際に拡大(または縮小)するかなどを指定します。デスティネーションは、アウトラインやアノテーションなどに関連付けて指定されます。

デスティネーションの情報は、以下の構文で指定します。

構文意味
[page /XYZ left top zoom]zoomに拡大されたコンテンツをウィンドウの左上からの座標(left,top)に表示
[page /Fit]ウインドウにフィットするように表示
[page /FitH top]ウインドウ上端からのtop位置に表示
[page /FitV left]ウインドウ左端からのleft位置に表示
[page /FitR left bottom right top]ウインドウ内の領域(left,bottom,right,top)に表示
[page /FitB]ウインドウのバンディング領域にフィットするように表示
[page /FitBH top]ウインドウ上端からのtop位置でウインドウのバンディング幅にフィットするように表示
[page /FitBV left]ウインドウ左端からのleft位置でウインドウのバンディング高さにフィットするように表示

5.2 アウトライン(Outlines)

PDF文書には、しおりの情報が含まれていることがあります。PDF文書のビュワーは、この情報を使ってしおりを表示し、PDFの閲覧者のマウスやキーボードによる操作で目的のページを直接表示することができます。

アウトライン(Outline)は、カタログ ディクショナリのOutlines項目から参照されます。


アウトライン ディクショナリには、以下の項目が含まれます。

キータイプ
Typename(オプション)"Outlines"を指定
Firstdictionary(必須)アウトラインのトップ レベルで最初のアウトライン アイテム ディクショナリへの参照を指定
Lastdictionary(必須)アウトラインのトップ レベルで最後のアウトライン アイテム ディクショナリへの参照を指定
Countinteger(必須)アウトラインのすべてのレベルで開いている階層の総数

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


アウトライン ディクショナリの例は、次の項目を参照してください。


5.3 アウトライン アイテム(Outline Item) ディクショナリ

アウトライ アイテムン ディクショナリには、以下の項目が含まれます。

キータイプ
Titletext string(必須)このアイテムのテキストとして表示されるべきもの
Parentdictionary(必須)このアイテムの親であるアウトライン階層
Prevdictionary(必須)このアウトラインレベルでの前の項目
Nextdictionary(必須)このアウトラインレベルでの前の項目
Firstdictionary(必須)このアイテムの直接の子で最初の項目
Lastdictionary(必須)このアイテムの直接の子で最後の項目
Countintegerこのアイテムの子孫の総数
アイテムが閉じている場合は、負数が指定されます。
Destname /
byte string /
array
(オプション)デスティネーションを指定
Adictionary(オプション)このアイテムが有効になった後に実施される動作
Carray(オプション)アウトライン項目の色を3要素の配列で指定
DeviceRGBカラーで各色項目を0.0から1.0で指定します。既定値は、[0.0 0.0 0.0]
Finteger(オプション)アウトライン項目の文字のスタイルを指定します。
以下の値で指定します。フラグのビット位置がオンの場合に以下のスタイルになります。
ビット位置スタイル名意味
1Italic項目が斜体で表示されます。
2Bold項目が太字で表示されます。
既定値は、0です。

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

PDF Viewer-Lライブラリを使うと、しおり情報を取得できます。
以下のサンプルコードを参照してください。
しおり情報を取得し、表示するC++のコード
しおり情報を取得し、表示するC#のコード

以下は、アウトラインおよびアウトライン アイテムの例です。

21 0 obj
  << /Count 6
    /First 22 0 R
    /Last 29 0 R
  >>
endobj

22 0 obj
  << /Title ( Chapter 1 )
    /Parent 21 0 R
    /Next 26 0 R
    /First 23 0 R
    /Last 25 0 R
    /Count 3
    /Dest [ 3 0 R /XYZ 0 792 0 ]
  >>
endobj

5.4 サムネール画像

PDF文書は、サムネール画像(ページ内容を小さな画像に変換したもの)を定義できます。PDFのビュワー アプリケーションは、この画像を画面に表示して、クリックされた画像のページにナビゲートするために使用します。
サムネール画像は、ページ オブジェクトのThumb項目で指定されたXObject(画像を定義するためのオブジェクト)です。

PDF Viewer-Lライブラリを使うと、サムネール画像を取得できます。
以下のサンプルコードを参照してください。
サムネール画像を取得し、表示するC++のコード
サムネール画像を取得し、表示するC#のコード

以下は、サムネール画像の例です。

12 0 obj
  << /Width 76
    /Height 99
    /ColorSpace /DeviceRGB
    /BitsPerComponent 8
    /Length 13 0 R
    /Filter [ /ASCII85Decode /DCTDecode ]
  >>
stream
s4IA>!"M;*Ddm8XA,lT0!!3,S!/(=R!<E3%!<N<(!WrK*!WrN,
・・・データ省略・・・
endstream
endobj
13 0 obj                            % ストリームのバイトサイズ
  …
endobj

ドキュメント カタログ」へ <<< >>>「メタデータ」へ


ご質問、お問い合わせ

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




スリーソフト作者の方へ

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