PDF 構文 インタラクティブ機能 Annotation

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データ解析や編集をより詳細にできるようにします。

12.Annotation

Annotation(注釈;アノテーション)は、メモやマルチメディアなどのオブジェクトをPDFページに関連付けたり、マウスやキーボードを使用してユーザーと対話する方法を提供したりします。
注釈タイプの多くは開いた状態または閉じた状態で表示できます。 閉じると、特定の注釈タイプに応じて、アイコン、ボックス、またはゴム印などの特徴的な形式でページに表示されます。 ユーザーが注釈をクリックしてアクティブにすると関連するオブジェクトが表示されます。

12.1 Annotationディクショナリ

ページオブジェクトのオプションAnnotsエントリは、Annotationディクショナリの配列を保持し、それぞれが特定のページに関連付けられたAnnotationを表します。

以下はすべての注釈辞書に共通の必須およびオプションのエントリを示しています。 ディクショナリには各Annotationタイプに固有の追加エントリが含まれる場合があります。

キータイプ
Typename(オプション)"Annot"と指定
Subtypename(オプション)このディクショナリが記述する注釈のタイプ
Rectrectangle(必須)既定のユーザー単位でページ上の注釈の位置と大きさを定義
Contentstext string(オプション)注釈に表示される文字列 もしくは、このタイプのAnnotationがテキストを表示しない場合、Annotationの代替説明を人間が読める形式で表示
Pdictionary(オプション)このAnnotationが関連付けられているページ オブジェクトへの間接参照
NM<text string(オプション)Annotation名
ページ内のすべてのAnnotationで一意に識別できる文字列
M日付またはtext string
(オプション)Annotationが最後に変更された日時
既定の形式以外でも表示できる必要があります。
Finteger(オプション)Annotationの様々な特性を指定するAnnotationフラグ
既定値:0
APdictionary(オプション)注釈がページ上で視覚的にどのように表示されるかを指定するAppearance(アピアランス;外観)ディクショナリ
ASname(必須ただし、APエントリ依存)Appearanceサブディクショナリから適用可能な外観の状態
Borderarray(オプション)Annotationのボーダースタイルを指定する配列
Carray(オプション)0.0から1.0の範囲の数値の配列で、次の目的で使用される色を表します。
・閉じたときのAnnotationアイコンの背景
・Annotationのポップアップ ウィンドウのタイトル バー
・リンクAnnotationの境界線
配列要素の数によって色空間が決まります。
 0 無色;透明
 1 DeviceGray
 3 DeviceRGB
 4 DeviceCMYK
StructParentinteger(注釈がStructuralコンテンツアイテムの場合は必須)Structural親ツリー内のAnnotationエントリの整数キー
OCdictionary(オプション)AnnotationのOptional Contentプロパティを指定する、Optional Content Group(OCG;レイヤ)またはOptional Content Membershipディクショナリ

12.2 Annotationフラグ

AnnotationディクショナリのFエントリの値はAnnotationのさまざまな特性を指定するフラグで符号なし32ビット整数です。 フラグ内のビット位置には、1(下位)から32(上位)までの番号が付けられ、以下の意味を持ちます。

ビット位置名前意味/th>
1Invisible標準のAnnotationタイプのいずれにも属さず、ハンドラが使用できないAnnotationにのみ適用されます。
セットされている場合、未知のAnnotationをレンダリングせず、Printフラグが設定されていても印刷しません。
クリアされている場合、そのAppearanceディクショナリで指定されたAppearanceストリームがあれば、それを使用してそのような未知のAnnotationをレンダリングします。
2Hiddenセットされている場合、Annotationタイプやハンドラーが使用可能かどうかに関係なく、Annotationをレンダリングしたり、ユーザーとの対話を許可したりしません。
3Printセットされている場合、Hiddenフラグもセットされていない限り、ページの印刷時にAnnotationを印刷します。
クリアされている場合、画面にレンダリングされるかどうかに関係なく、をAnnotation印刷しません。
注釈にAppearanceストリームが含まれていない場合このフラグは無視されます。
4NoZoomセットされている場合、ページの倍率に合わせてAnnotationを拡大・縮小しません。ページ上の位置はページの倍率に関係なく固定されたままになります。
5NoRotateセットされている場合、ページの回転に合わせてAnnotationを回転しません。
Annotationの左上隅はページの回転に関係なく固定位置に留まります。
6NoViewセットされている場合、Annotationをレンダリングしたり、ユーザーとの対話を許可したりしません。
Annotationは(Printフラグの設定に応じて)印刷される場合がありますが、画面への表示とユーザーの操作のために非表示と見なされます。
7ReadOnlyセットされている場合、Annotationがユーザーと対話することを許可しません。Annotationは(NoViewおよびPrintフラグの設定に応じて)レンダリングまたは印刷できますが、マウスクリックに応答したりマウスの動きに応答して外観を変更しません。
8Lockedセットされている場合、ユーザーによるAnnotationの削除またはそのプロパティ(位置とサイズを含む)の変更を許可しません。
ただし、このフラグはフォームフィールドの値などのAnnotation内容に対する変更を制限しません。
9ToggleNoViewセットされている場合、Annotationの選択とマウスホバリングのNoViewフラグの解釈を反転し、マウスポインタがAnnotationの上に置かれたとき、またはAnnotationが選択されたときに表示されるようにします。
10LockedContentsセットされている場合、ユーザーによるAnnotation内容の変更を許可しません。
このフラグは、Annotationの削除、位置またはサイズなどの他のAnnotationプロパティの変更を制限しません。

12.3 ボーダー スタイル

Annotationは表示または印刷するときにオプションでボーダー(境界)線で囲むことができます。
指定されている場合、ボーダーはAnnotation四角形の内側に完全に描画されます。
ボーダースタイルはいkのディクショナリによって決定されます。

キータイプ
Typename(オプション)"Border"と指定
Wnumber(オプション)境界線の幅(ポイント単位)
この値が0の場合に境界線は描画されません。
既定値:1
Sname(オプション)境界線の種類
 S (Solid)実践
 D (Dashed)破線 詳細は"D"エントリによって指定
 B (Beveled)浮き上がって見える境界
 I (Inset)くぼんで見える境界
 U (Undeline)Annotation下部に沿った1本の線
既定値:S
Darray(オプション)破線の境界線を描画するために使用される破線と間隙のパターンを定義するDash Array
Dash Arrayはグラフィック状態の破線パターン パラメータと同じ形式で指定します。ただし、ダッシュフェーズは指定されておらず0と見なされます。たとえば、[ 3 2 ] の場合、3ポイントのダッシュと2ポイントのギャップが交互に表示される境界線を指定します。
既定値:[3]

12.4 Appearanceストリーム

Annotationの外観(Appearance;アピアランス)は単純な境界線と色による指定だけでなく、1つ以上のAppearanceストリームを指定できます。
Appearanceストリームを使用すると様々な方法でAnnotationを視覚的に表示してユーザーとのやり取りに反映できます。 Appearanceストリームは、フォームXObjectで、Annotationの四角形内にレンダリングされる自己完結型のコンテンツストリームです。 Annotationは最大で3つの違った外観を定義できます。

  • 通常の外観:Annotationがユーザーと対話していない場合
    この外観はAnnotationの印刷にも使用されます。
  • ロールオーバーの外観:ユーザーがマウス ボタンを押さずにAnnotationのアクティブ領域にカーソルを移動した場合
  • ダウン(マウスボタン押下)の外観:Annotationのアクティブ領域内でマウスボタンを押すか押したままにした場合

上記の3つの外観は以下のAppearanceディクショナリで定義されます。
このディクショナリは、AnnotationディクショナリAPエントリの値です

キータイプ
Nstreamまたは
dictionary
(必須)[Normal]:通常の外観指定値
Rstreamまたは
dictionary
(オプション)[Rollover]:ロールオーバーの外観指定値
既定値:Nエントリの値
Dstreamまたは
dictionary
(オプション)[Down]:下線の外観指定値
既定値:Nエントリの値

Appearanceディクショナリの各エントリには単一のAppearanceストリームまたはAppearanceサブディクショナリのいずれかが含まれる場合があります。後者の場合サブディクショナリはAnnotationのさまざまな外観の状態に対応する複数のAppearanceストリームを定義します。

12.5 Annotationタイプ

PDFは以下の標準Annotationタイプをサポートします。

Text*, Link, FreeText*, Line*, Square*, Circle*, Polygon*, PolyLine*, Highlite*, Underline*, Squiggly*, StrikeOut*, Stamp*, Caret*, Ink*, Popup, FileAttachment*, Sound*(PDF2.0で廃止), Movie(PDF2.0で廃止), Widget, Screen, PrinterMark, TrapNet(PDF2.0で廃止), Watermark, 3D, Redact*(PDF1.7), Projection*(PDF2.0), RichMedia(PDF2.0)

各タイプの詳細は、PDF Reference 1.7 「8.4.5 Annotation Types」、または ISO32000-2 「12.5.6 Annotation Types」を参照してください。

12.6 Widgetアノテーション

インタラクティブ フォームは、Widget(ウィジェット)アノテーションを使ってその外観とユーザーとの対話を管理します。
フィールドに関連するWidgetアノテーションが1つしかない場合、FieldディクショナリAnnotationディクショナリの内容を単一のディクショナリに統合できます。

Widget Annotationのフィールドディレクトリには以下の追加項目があります。

キータイプ
Subtype(必須)"Widget"を指定
H(オプション)マウス ボタンがそのアクティブ領域内で押された、または押し下げられたときに使用される視覚効果(Highlighting)
N[None]:効果なし(No Highlight)
I[Invert]:内容を表示するために使用される色を反転
O[Outline]:境界線を指定色でストローク
P[Push]:下線外観があればそれを表示、下線外観が定義されていない場合は押し込まれているように表示されます。
T[Toggle]:Pと同じ
P以外の視覚効果モードはAnnotationに定義されている下線外観を上書きします。
既定値:I
MK(オプション)Annotationの視覚的表現を指定する動的なAppearanceストリームを構築する際に使用されるAppearanceストリーム ディクショナリ
A(オプション)Annotationがアクティブ化されたときに実行されるアクション
AA(オプション)様々なトリガー イベントに応答するAnnotationの動作を定義する追加アクション ディクショナリ
BS(オプション)Annotation境界線のを定義するスタイル ディクショナリ
Parent(オプション)WidgetAnnotationの親フィールドへの参照


ご質問 ・ お問い合わせ

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


PDF Toolsライト

PDF 構文解説

(ISO32000-2より)

PDF Tools製品概要