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

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

13.0 インタラクティブ フォームと非インタラクティブ フォーム

インタラクティブ フォーム(AcroForm とも呼ばれます)は、ユーザーからインタラクティブに情報を収集するためのフィールドの集まりです。
PDF文書にはページに表示される任意の数のフィールドを含めることができ、そのすべてが文書全体にわたる単一のグローバルなインタラクティブ フォームを構成します。
これらのフィールドの任意のサブセットを文書からインポートまたはエクスポートできます。

非インタラクティブ フォームは、フォーム フィールドの静的な表現です。
このフォームに元はインタラクティブなフィールド(テキストフィールドやラジオボタンなど)が含まれていたものが非インタラクティブなPDFファイルに変換された可能性があり、 フォーム フィールドや外部ソースから変換されたデータを表している可能性があります。

13.1 インタラクティブ フォーム

文書フォームの各フィールドは、フィールド ディクショナリによって定義されます。 定義と命名のためにフィールドを階層的に編成しフィールド階層の祖先から属性を継承できます。 階層内のフィールドの子にはページ内でのアピアランスを定義するWidget Annotation(ウィジェット アノテーション)を含めることもできます。

13.2 インタラクティブ フォーム ディクショナリ

文書のインタラクティブ フォーム のコンテンツとプロパティはインタラクティブ フォーム ディクショナリに定義されます。このディクショナリはドキュメント カタログであるカタログ ディクショナリAcroForm項目から参照されなければなりません。

インタラクティブ フォーム ディクショナリには、以下の項目が含まれます。

キータイプ
Fieldsarray(必須)文書のルートFieldの参照配列
NeedAppearancesboolean(オプション)外観を持つ場合に真
外観を持つ場合はStreamと外観のディクショナリ(Widget Annotation)で定義します。
既定値は偽(Variable Text参照)
SigFlagsinteger(オプション)Signatureフィールドのレベルを示す。
既定値は0(ゼロ)
COarray(必要な場合あり)フィールドの値が変更された際の再計算の順序を定義する。
DRdictionary(オプション)フィールドを表示する際に利用する既定のリソース(フォント、パターン、色空間など)を定義する。
DAstring(オプション)文書レベルのVariable Text FieldのDAの既定値を定義する。
Qinteger(オプション)文書レベルのVariable Text FieldのQの既定値を定義する。
XFAstream /
array
XFAリソース

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

上記のディクショナリのSigFlagエントリは文書レベルでの署名フィールド特性を以下のようにそのビット位置の値で定義します。

ビット位置名前意味
1SignaturesExistこのビットがセットされている場合は少なくとも1つの署名フィールドを含みます。
2AppendOnlyこのビットがセットされている場合は以前の状態が無効になるように署名フィールドが変更されることがあります。

13.3 フィールド ディクショナリ

インタラクティブ フォームのそれぞれのフィールド(Field)はこのフィールド ディクショナリで定義されます。
フィールド ディクショナリは1つ以上のツリー構造で階層的に構成されます。
多くのフィールド属性は継承できますので、特定のフィールドで明示指定されていない場合その値はフィールド階層内の親から取得します。

フィールド ディクショナリには、以下の項目が含まれます。

キータイプ
FTname(必須)このディクショナリが定義するフィールドのタイプ
Btnボタン(プッシュボタン、チェックボタン、ラジオボタン)
Tx通常はキーボードから入力される文字列入力用のボックスまたはスペース
Ch選択フィールドは、いくつかの選択可能なテキスト項目を含むフォームフィールド
Sig電子署名を含むフォームフィールド
Parentdictionary(必須)直接の親であるField
Kidsarray(場合による)直接の子であるFieldへの間接参照の配列
終端でないフィールドではこのフィールドの直接の子孫であるフィールドディクショナリを参照するためにKids配列が必要な場合があります。
Ttext string(オプション)部分Fieldの名前
(Field Names参照)
TUtext string(オプション)代替Field名
(Alternate Descriptions参照)
TMtext string(オプション)文書からインタラクティブForm Fieldのデータを取り出す際に使用するマッピング名
Ffinteger(オプション)フィールドのさまざまな特性を指定するフラグのセット
既定値:0
V(various)(オプション)Fieldの値
個々のフィールドタイプにより異なる
DV(various)(オプション)リセットフォームアクションが実行される際の既定値
(Reset-Form Action参照)
AAdictionary(オプション)様々なトリガーイベントに応じて実行されるFieldの動作を定義した追加のアクション
(Trigger Events、Annotation Dictionary参照)

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


上記のディクショナリのFfエントリは、そのビット位置で以下の意味を持ちます。

ビット位置名前意味
1ReadOnlyセットさせている場合ユーザーはこのFieldを変更できません。
2Requiredセットされている場合サブミットアクションで取り出す場合にこのフィールドは値を持たなければなりません。
3NoExportセットされている場合サブミットアクションで取り出すことはできません。

ご質問 ・ お問い合わせ

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


PDF Toolsライト

PDF 構文解説

(ISO32000-2より)

PDF Tools製品概要