ドキュメント情報

ドキュメント情報
ここでは、PDF の基本的なドキュメント情報を設定する方法を説明します。

PDF の一番ルートなる情報は、トレーラー辞書、またはクロスリファレンスストリーム辞書のエントリで指定します。

trailer
<< /Size 5
   /Root 1 0 R % カタログ辞書
   /Info 2 0 R % Info 辞書
>>
startxref
296
%%EOF
Info 辞書
まずは、Info 辞書です。
この辞書では、PDF ドキュメントのタイトルなどの情報を設定します。

トレーラー辞書、またはクロスリファレンスストリーム辞書の、Info エントリで指定します。

Info エントリ自体は、必須ではなく、オプションです。
この辞書は、常に間接参照で指定する必要があります。

なお、ここで、日本語などを含む文字列を記述したい場合は、UTF-16BE 文字列で記述します。

Titletext string(PDF 1.1) タイトル
Authortext string作成者
Subjecttext string(PDF 1.1) 主題
Keywordstext string(PDF 1.1) 関連するキーワード
Creatortext stringドキュメントが別の形式から PDF に変換された場合、変換元のドキュメントを作成したアプリケーションの名前
Producertext stringドキュメントが別の形式から PDF に変換された場合、そのドキュメントを PDF に変換したアプリケーションの名前
CreationDatedate作成日時
ModDatedate(PDF 1.1。カタログ辞書に PieceInfo エントリが存在する場合は必須)
最終更新日時
Trappedname(PDF 1.3) ドキュメントが変更されて、トラップ情報が含まれているか。

トラップ情報というのは、多色刷りを行う際に、各色の位置がずれて、色が好ましくない状態になるのを回避するための情報です。

/True : 完全にトラップされた。これ以上トラップする必要はない。
/False : まだトラップされていない。必要なトラッピングを引き続き行う必要がある。
/Unknown : 不明。いくつかの追加のトラッピングが必要な場合がある。(default)
PDF/X
PDF/X では、Info 辞書のいくつかが必須エントリとなり、また、追加のエントリが必要になります。

PDF/X であるかどうかの判断は、Info 辞書の情報を元に行われることになります。

PDF/X では、Title, CreationDate, ModDate, Trapped エントリが必須であり、
また、Creator, Producer の指定が推奨されます。

追加のエントリ
GTS_PDFXVersiontext stringPDF/X のバージョンの文字列。

PDF/X-1a:2001 なら (PDF/X-1:2001)
PDF/X-1a:2003 なら (PDF/X-1a:2003)
PDF/X-3:2002 なら (PDF/X-3:2002)
PDF/X-3:2003 なら (PDF/X-3:2003)
GTS_PDFXConformancetext string(PDF/X-1a:2001 の場合のみ) PDF/X の準拠の文字列。
PDF/X-1a:2001 の場合、(PDF/X-1a:2001)
5 0 obj
<< /Title (test)
 /CreationDate (D:202001201952+09'00')
 /ModDate (D:202001201952+09'00')
 /Trapped /False
 /GTS_PDFXVersion (PDF/X-1:2001)
 /GTS_PDFXConformance (PDF/X-1a:2001)
>>
endobj
...
trailer
<< /Size 6
   /Root 1 0 R
   /Info 5 0 R
   /ID [<010203> <010203>]
>>
...
カタログ辞書
カタログ辞書では、ドキュメントの表示方法や、ページの情報などを設定します。

トレーラー辞書、またはクロスリファレンスストリーム辞書の、Root エントリで指定します。
これは必須であり、常に間接参照で指定します。

以下のエントリの中で、最低限必要なのは、TypePages エントリです。

Typename(必須) オブジェクトのタイプ。常に /Catalog
Versionname(PDF 1.4) PDF のバージョン。

ファイルの更新によって、ファイルヘッダで指定されているバージョンよりも新しい機能を使用した場合に使われ、この値で、PDF のバージョンが上書きされます。
(その場合、ヘッダのバージョンを変更する形でも問題ありません)

※バージョンは、数値ではなく、名前オブジェクトで指定するため、"/1.5" などと記述します。
Pagesdictionary(必須。間接参照) ドキュメントのページツリーのルートとなる、ページツリーノード。
要は、ルートとなるページです。
PageLabelsnumber tree(PDF 1.3) ドキュメントのページラベルを定義する、番号ツリー。

キーとなる数値は「ページインデックス (ラベル付け範囲の最初のページ)」で、値は「ページラベル辞書」です。
Namesdictionary(PDF 1.2) ドキュメントの名前辞書。

間接参照によってオブジェクトを参照するのではなく、名前によってオブジェクトを参照するための定義。
Destsdictionary(PDF 1.1。間接参照) 宛先に名前を付ける場合の辞書
ViewerPreferencesdictionary(PDF 1.2) ビューア設定辞書。

ドキュメントを画面に表示する方法を指定します。
このエントリが存在しない場合、アプリケーションは独自のユーザー設定を使用する必要があります。
PageLayoutnamePDF を開いた時のページレイアウトの指定。
default = /SinglePage

/SinglePage : 1ページずつ表示
/OneColumn : 縦に繋げて1列に表示
/TwoColumnLeft : 横は2列に表示して縦に繋げる (左に奇数ページ)
/TwoColumnRight : 横は2列に表示して縦に繋げる (右に奇数ページ)
/TwoPageLeft : (PDF 1.5) 2ページずつ見開き表示 (左に奇数ページ)
/TwoPageRight : (PDF 1.5) 2ページずつ見開き表示 (右に奇数ページ)
PageModenamePDF を開いた時の表示方法を指定。
default = /UseNone

/UseNone : アウトライン (目次) もサムネイル画像も表示しない
/UseOutlines : アウトラインを表示
/UseThumbs : サムネイル画像を表示
/FullScreen : 全画面モード
/UseOC : (PDF 1.5) オプションのコンテンツグループパネルを表示
/UseAttachments : (PDF 1.6) 添付ファイルパネルを表示
Outlinesdictionary(間接参照) ドキュメントのアウトラインの階層のルートである、アウトライン辞書。
目次のルートです。
Threadsarray(PDF 1.1。間接参照) ドキュメントの記事スレッドを表すスレッド辞書の配列
OpenActionarray or dictionary(PDF 1.1) ドキュメントが開かれた時に表示される宛先、または実行されるアクションの指定。

宛先を定義する配列、または、アクションを表すアクション辞書。
このエントリがない場合、デフォルトの倍率で、最初のページを開きます。
AAdictionary(PDF 1.4) 様々なトリガーイベントに応じて実行するアクションを定義する
URIdictionary(PDF 1.1) URI アクションのドキュメントレベルの情報である URI 辞書
AcroFormdictionary(PDF 1.2) インタラクティブフォーム辞書
Metadatastream(PDF 1.4。間接参照) ドキュメントのメタデータストリーム
StructTreeRootdictionary(PDF 1.3) 構造ツリールート辞書
MarkInfodictionary(PDF 1.4) タグ付き PDF 規則のドキュメントの使用に関する情報を含むマーク情報
Langtext string(PDF 1.4) 構造要素またはマークされたコンテンツの言語仕様によってオーバーライドされる場合を除き、ドキュメント内のすべてのテキストの自然言語を指定する言語識別子。
エントリがない場合、言語は不明となる。
SpiderInfodictionary(PDF 1.3) Acrobat Web Capture(AcroSpider)プラグイン拡張機能で使用される状態情報を含む Web Capture 情報辞書
OutputIntentsarray(PDF 1.4) ドキュメントがレンダリングされる可能性のある出力デバイスの色特性を記述する出力インテント辞書の配列。
ICC プロファイルなどを指定します。
PieceInfodictionary(PDF 1.4) 文書に関連付けられたページピース辞書。
プライベートデータを含める場合に使います。
OCPropertiesdictionary(PDF 1.5。オプションのコンテンツが含まれる場合必須) ドキュメントのオプションのコンテンツプロパティ辞書
Permsdictionary(PDF 1.5) ドキュメントのユーザーアクセス許可を指定する許可辞書
Legaldictionary(PDF 1.5) デジタル署名の合法性に関連するため、PDF ドキュメントのコンテンツに関する認証を含む辞書
Requirementsarray(PDF 1.7) ドキュメントの要件を表す要件辞書の配列
Collectiondictionary(PDF 1.7) PDF コンシューマーが PDF ドキュメントに保存されている添付ファイルの表示を強化するために使用するコレクション辞書
NeedsRenderingboolean(PDF 1.7) XFA フォームを含む PDF ドキュメントの表示を促進するために使用されるフラグ。
ドキュメントを最初に開いたときにドキュメントを再生成する必要があるかどうか。
default = false
カタログ辞書の ViewerPreferences エントリ
カタログ辞書の ViewerPreferences エントリでは、PDF ビューアの UI 設定や、印刷に関する情報などを、辞書で設定します。
このエントリはオプションです。

それほど重要な項目はありませんが、縦書きのドキュメントで見開きを右綴じにしたい場合などは、指定が必要になります。

HideToolbarbooleanツールバーを非表示にするか。default = false
HideMenubarbooleanメニューバーを非表示にするか。default = false
HideWindowUIbooleanUI 要素 (スクロールバーやナビゲーションコントロールなど) を非表示にして、ドキュメントのコンテンツのみ表示するか。
default = false
FitWindowboolean最初に表示されるページのサイズに合わせてウィンドウのサイズを変更するかどうか。
default = false
CenterWindowbooleanウィンドウを画面の中央に配置するかどうか。
default = false
DisplayDocTitleboolean(PDF 1.4) ウィンドウのタイトルバーに、Info 辞書の Title エントリから取得したドキュメントタイトルを表示するかどうか。
false の場合、PDF ファイル名を表示する。
default = false
NonFullScreenPageModename全画面モードの終了時にドキュメントを表示する方法。
カタログ辞書の PageMode が FullScreen の場合のみ。

/UseNone : ドキュメントのアウトラインもサムネイル画像も表示されない (default)
/UseOutlines : アウトラインを表示
/UseThumbs : サムネイル画像を表示
/UseOC : オプションのコンテンツグループパネルを表示
Directionname(PDF 1.3) テキストの方向。
ページの内容やページ番号には直接影響しませんが、並べて表示したりする時に影響があります。

/L2R : 左から右 (default)
/R2L : 右から左 (縦書き時を含む)
ViewAreaname(PDF 1.4) 画面でドキュメントを表示するときに表示されるページの領域を表すページ境界の名前。

値は、ページオブジェクト内の関連するページ境界を指定するキー名。
指定したページ境界がページオブジェクトで定義されていない場合は、そのデフォルト値が使用される。
default = /CropBox
ViewClipname(PDF 1.4) 画面でドキュメントを表示するときにページのコンテンツが切り取られるページ境界の名前
PrintAreaname(PDF 1.4) ドキュメントの印刷時にレンダリングされるページの領域を表すページ境界の名前
PrintClipname(PDF 1.4) ドキュメントの印刷時にページのコンテンツが切り取られるページ境界の名前
PrintScalingname(PDF 1.6) このドキュメントの印刷ダイアログが表示されたときに選択されるページスケーリングオプション。
default = /AppDefault

/None : 印刷ダイアログがページスケーリングを反映しない
/AppDefault : アプリケーションが現在の印刷スケーリングを使用することを示す
Duplexname(PDF 1.7) 印刷ダイアログからファイルを印刷するときに使用する用紙処理オプション。
default = なし

/Simplex : 片面印刷
/DuplexFlipShortEdge : シートの短辺を両面印刷して裏返す
/DuplexFlipLongEdge : シートの長辺を両面印刷して裏返す
PickTrayByPDFSizeboolean(PDF 1.7) PDF のページサイズを使用して入力用紙トレイを選択するかどうか。

PDF ビューアアプリケーションによって表示される印刷ダイアログの入力に使用されるプリセット値のみに影響する。
PrintPageRangearray(PDF 1.7) ファイルの印刷時、印刷ダイアログボックスの初期化時に使用されるページ番号。

PDF ファイルの最初のページは 1 で表される。
2つの値をペアとし、サブ範囲の最初と最後のページ番号を指定する。
長さが奇数の場合はこのエントリが無視され、負の数を指定すると、配列全体が無視される。
NumCopiesinteger(PDF 1.7) このファイルの印刷ダイアログを開いた時の部数。
サポートされる値は 2〜5 の整数。この範囲外の値は無視される。
default = 通常は 1