PDF 構文 PDF文書のナビゲーション

PDF構文 (PDF Syntax ISO 32000-2)

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

PDF文書には、その文書の概略を階層的に示したアウトライン(Outline)やページの内容を小さな画像にしたサムネール(Thumbnail)を含めることができます。
アウトラインは、ブックマーク(Bookmark)とも呼ばれます。
一般的なPDFのビュワーは、その情報を使ってPDFの閲覧者と対話的にページをナビゲートできます。

7.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位置でウインドウのバンディング高さにフィットするように表示

7.2 アウトライン(Outlines)

PDF文書にはしおりの情報が含まれていることがあります。 PDF文書のビュワーはこの情報を使ってしおりを表示し、PDFの閲覧者のマウスやキーボードによる操作で目的のページを直接表示することができます。
アウトライン(Outline)はカタログ ディクショナリのOutlines項目から参照されます。

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

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

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

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

7.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オブジェクト」を参照してください。

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

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
指定PDFファイルのOutlinesオブジェクトを抽出します。
(このブラウザでは機能しません。)

7.4 サムネール画像

PDF文書はサムネール画像(ページ内容を小さな画像に変換したもの)を定義できます。 PDFのビュワー アプリケーションはこの画像を画面に表示してクリックされた画像のページにナビゲートするために使用します。
ナビゲートが不要な場合は削除してもPDF文書本文の表示内容は変化しません。そのため、サムネール画像を削除することでPDFファイルサイズを縮小することもできます。
PDF Optimizer」を使ってPDFファイルからサムネール画像を削除できます。

サムネール画像はページ オブジェクトのThumb項目で指定されたXObject(画像を定義するためのオブジェクト)です。

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

12 0 obj
  << /Width 76
    /Height 99
    /ColorSpace /DeviceRGB
    /BitsPerComponent 8
    /Length 1234
    /Filter [ /ASCII85Decode /DCTDecode ]
  >>
stream
s4IA>!"M;*Ddm8XA,lT0!!3,S!/(=R!<E3%!<N<(!WrK*!WrN,
・・・データ省略・・・
endstream
endobj
指定PDFファイルのThumbnailオブジェクトまたは画像を抽出します。
   (このブラウザでは機能しません。)

ご質問 ・ お問い合わせ

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


PDF Toolsライト

PDF 構文解説

(ISO32000-2より)

PDF Tools製品概要