AcroFormは、PDF文書内でインタラクティブフォームを実装するための2つの標準的な方法のうちの1つであり、文書のCatalogディクショナリ内の/AcroFormエントリを通じて参照されるフォームフィールドオブジェクトを使用します。
(
Citation: N.A., 2020
(N.A.).
(2020).
Document management — Portable document format — Part 2: PDF 2.0
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/75839.html
)
で定義されているように、AcroFormはウィジェットベースのアプローチをPDFフォームに提供し、各フォームフィールドには関連する視覚的な外観と動作プロパティが備わっています。XFA(XML Forms Architecture)とは異なり、AcroFormフィールドはPDF文書構造と緊密に統合されており、アクセシビリティ向上のためにTagged PDFと併用することができます
(
Citation: N.A., 2014
(N.A.).
(2014).
Document management applications — Electronic document file format enhancement for accessibility — Part 1: Use of ISO 32000-1 (PDF/UA-1)
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/64599.html
)
。
ボタンフィールド(Button field)は、PDFドキュメントにおけるインタラクティブなフォームフィールドの一種で、プッシュボタン、チェックボックス、ラジオボタンを通じてユーザーとのインタラクションを可能にします。
(
Citation: N.A., 2020
(N.A.).
(2020).
Document management — Portable document format — Part 2: PDF 2.0
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/75839.html
)
によると、ボタンフィールドはインタラクティブなPDFフォームを作成するための基本的なフィールドタイプの1つです。テキスト入力やリストからの選択を受け付けるテキストフィールドや選択フィールドとは異なり、ボタンフィールドはユーザーのクリックに応答し、アクションをトリガーしたり、ブール状態を表現したりすることができます。
ボタンフィールドは、PDF仕様で定義されたインタラクティブなアノテーションで、ユーザーがクリックやトグル操作を通じてドキュメントと対話できるようにします。ボタンフィールドには3つの明確なサブタイプがあります:プッシュボタン(クリック時にアクションを実行)、チェックボックス(オン・オフ状態を切り替え)、ラジオボタン(グループ内の1つのオプションを選択)です。これらのフィールドはPDF構造内で特定のプロパティで定義され、異なる状態(通常、ロールオーバー、押下)での外観を定義するアピアランスストリーム(appearance stream)や、ボタンがアクティブ化されたときに実行されるオプションのアクションが含まれます。フィールドタイプはフィールド辞書内の/FTエントリで/Btnの値により識別され、特定のサブタイプの動作は/Ff(フィールドフラグ)エントリ内のフラグによって制御されます。
ボタンフィールドは、単純な閲覧を超えたユーザーエンゲージメントを必要とするインタラクティブなPDFフォームやドキュメントを作成するために不可欠です。PDF対応アプリケーションを構築する開発者にとって、ボタンフィールドの理解は、フォーム送信ワークフロー、ナビゲーションコントロール、ドキュメントの使いやすさを向上させるインタラクティブ機能を実装するために重要です。ボタンフィールドは、
(
Citation: N.A., 2014
(N.A.).
(2014).
Document management applications — Electronic document file format enhancement for accessibility — Part 1: Use of ISO 32000-1 (PDF/UA-1)
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/64599.html
)
に従って適切にタグ付けされると、支援技術がフォームコントロールを正しく識別して対話できるようにする重要なアクセシビリティ機能を提供します。また、ユーザーのインタラクションがJavaScriptアクションをトリガーしたり、異なるページに移動したり、サーバーにデータを送信したり、ドキュメントの状態を変更したりできる動的なPDFを作成するための基盤を提供します。PDF機能を統合するWeb開発者にとって、ボタンフィールドは従来のHTMLフォームコントロールとPDFのインタラクティビティの間の橋渡しをします。
Choice fieldは、PDF文書内のインタラクティブなフォームフィールドタイプの一つで、ユーザーが事前定義されたリストから1つまたは複数のオプションを選択できるようにします。
(
Citation: N.A., 2020
(N.A.).
(2020).
Document management — Portable document format — Part 2: PDF 2.0
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/75839.html
)
で定義されているように、choice fieldには2つの表示スタイルがあります。複数の選択肢を表示するリストボックスと、アクティブ化されたときに選択肢を表示するコンボボックス(ドロップダウンメニュー)です。これらのフィールドは、制御された語彙を用いた構造化されたユーザー入力が必要なPDFフォームの重要なコンポーネントです。
Choice fieldは、PDF内の標準的なフォームフィールドタイプの一つで、自由形式のテキスト入力ではなく、事前に決められた選択肢のセットをユーザーに提示するように設計されています。任意の入力を受け付けるtext fieldとは異なり、choice fieldはユーザーの選択を定義されたリストの値に制限することで、データの一貫性と検証を保証します。Choice fieldの2つの実装方法は、視覚的な表示方法が異なります。リストボックスは複数のオプションをスクロール可能な領域に同時に表示するのに対し、コンボボックスはユーザーがドロップダウンメニューをアクティブ化するまで選択された値のみを表示することでスペースを節約します。一部のコンボボックスは、事前定義されたオプションに加えてカスタムテキスト入力を許可するように設定でき、ハイブリッドな動作を実現します。Choice fieldは、表示されるテキスト(エクスポート値)とオプションの内部値の両方を保存するため、表示されるオプションとフォームが処理される際に送信されるデータを異なるものにすることができます。
Choice fieldは、データ検証、構造化された入力、またはバックエンドシステムとの統合が必要なPDFフォームを構築する開発者にとって不可欠です。ユーザー入力を事前定義されたオプションに制限することで、choice fieldはデータ入力エラーを削減し、複雑な検証ロジックの必要性を排除し、フォーム送信全体での一貫性を保証します。アクセシビリティの観点から、
(
Citation: N.A., 2014
(N.A.).
(2014).
Document management applications — Electronic document file format enhancement for accessibility — Part 1: Use of ISO 32000-1 (PDF/UA-1)
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/64599.html
)
などの標準で要求されているように、choice fieldは支援技術と連携するために適切に構造化され、ラベル付けされる必要があります。フォーム処理ワークフローを開発する際、choice fieldは返される値が予測可能で標準化されているため、データの抽出とマッピングを簡素化します。Choice fieldの理解は、PDFフォームライブラリやAPIを扱う開発者にとって不可欠です。これらのコンポーネントは、オプションリスト、デフォルト選択、複数選択動作、エクスポート値に対する特定の設定が必要となるためです。
現在値(V)は、インタラクティブフォームフィールドのフィールド辞書内に必須のエントリとして存在し、フィールドの現在のデータ状態を格納します
(
Citation: N.A., 2020
(N.A.).
(2020).
Document management — Portable document format — Part 2: PDF 2.0
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/75839.html
)
。この値は、ユーザーがフォームフィールドに入力または選択した内容を表し、フィールドの初期状態を表すデフォルト値(DV)とは区別されます。Vエントリは、ユーザーがPDFフォームを完成させた際に送信される実際の情報を含むため、フォームデータ処理の基本となります。
現在値は、PDF構造内のフォームフィールドの辞書にVエントリとして格納されます。Vエントリのデータ型と形式は、フィールドタイプによって異なります。テキストフィールドは文字列を格納し、チェックボックスは名前値(通常は/Yesまたは/Off)を格納し、ラジオボタンは選択されたオプションの名前を格納し、チョイスフィールドは選択された項目を格納し、ボタンフィールドは様々なアクション関連データを格納する場合があります。フィールドの元の状態またはリセット状態を表すデフォルト値(DV)とは異なり、Vエントリはユーザーがフォームを操作するにつれて動的に変化します。PDFフォームが開かれると、フィールドは存在する場合はVエントリを表示し、現在値が設定されていない場合はDVエントリにフォールバックします。PDF仕様によれば、Vエントリはほとんどのフォームフィールドタイプで必須とされており
(
Citation: N.A., 2020
(N.A.).
(2020).
Document management — Portable document format — Part 2: PDF 2.0
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/75839.html
)
、フォーム状態を確実に保持および送信できるようにしています。
デフォルト値(DV)は、PDFフォームフィールドの辞書に格納されるプロパティで、フォームが元の状態にリセットされたときにフィールドが表示すべき初期値を指定します。
(
Citation: N.A., 2020
(N.A.).
(2020).
Document management — Portable document format — Part 2: PDF 2.0
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/75839.html
)
で定義されているように、DVエントリはフィールドの現在の値(Vエントリ)と連携してフォームリセット機能を実現します。この属性により、インタラクティブフォームをドキュメントを再作成することなく元の状態に戻すことができます。
デフォルト値は、フォームフィールドの辞書内のオプションのエントリで、PDF仕様では「DV」というキーで識別されます。フォームリセットアクションがトリガーされたときにフィールドが復帰すべき値を格納し、フィールドの基準状態として機能します。V(値)エントリがユーザーに表示され、フォーム送信時に含まれるフィールドの現在の値を表すのに対し、DVエントリは明示的に変更されない限り一定であり、フィールドの元の状態の参照点として機能します。
DVエントリには、フィールドタイプに応じてさまざまなデータ型を含めることができます。テキストフィールドの場合はテキスト文字列、ボタンフィールドの場合は名前、複数選択可能なチョイスフィールドの場合は配列などです。すべてのフォームフィールドにデフォルト値が必要なわけではありません。DVエントリが存在しない場合、リセットアクションが実行されるとフィールドは空または未選択の状態にリセットされます。
PDFフォーム機能を実装する開発者にとって、デフォルト値を理解することは以下の理由から重要です。第一に、フォームリセットボタンの適切な実装を可能にします。これは、ユーザーが入力内容をクリアして最初からやり直すことを可能にする一般的なユーザーインターフェース要件です。DVエントリが正しく設定されていない場合、リセットアクションが予期しない結果を生じたり、フィールドを意図した初期状態に復元できなくなる可能性があります。
FDF(Forms Data Format)は、PDFドキュメントとは別にフォームフィールドデータを交換するために特別に設計されたファイル形式です。
(
Citation: N.A., 2020
(N.A.).
(2020).
Document management — Portable document format — Part 2: PDF 2.0
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/75839.html
)
で定義されているように、FDFはPDFファイル全体を送信することなく、フォームの値、注釈、その他のインタラクティブ要素をインポート・エクスポートするための軽量なメカニズムを提供します。フォームデータをドキュメント構造から分離することで、効率的なクライアント・サーバー間のワークフローやデータベース統合のシナリオが可能になります。
FDFは、完全なPDFドキュメント構造ではなく、PDFフォームフィールドのデータ値、フィールド名、および関連するメタデータのみを含むテキストベースのファイル形式です。FDFファイルは、ファイル仕様を通じて親となるPDFドキュメントを参照し、必要に応じてデータを元のフォームテンプレートと再結合できるようにします。
(
Citation: N.A., 2020
(N.A.).
(2020).
Document management — Portable document format — Part 2: PDF 2.0
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/75839.html
)
で説明されている完全なPDF形式とは異なり、FDFファイルは、静的なドキュメントコンテンツ、ページ記述、フォント、画像ではなく、可変データ(ユーザーがフォームフィールドに入力する情報)のみを含むため、大幅に小さくなります。FDFファイルはPDF構文のサブセットを使用しているため、人間が読みやすく、プログラムで処理しやすくなっています。通常、.fdfファイル拡張子を持ち、PDFリーダーで開くと、対応するPDFフォームに自動的にデータが入力されます。
FDF JavaScriptとは、Forms Data Format(FDF)ファイルに埋め込まれたJavaScriptコードで、PDFフォームフィールドやイベントに関連する動作やアクションを定義します。
(
Citation: N.A., 2020
(N.A.).
(2020).
Document management — Portable document format — Part 2: PDF 2.0
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/75839.html
)
で規定されているように、PDF内のJavaScriptはフィールド検証、計算、ユーザー入力への動的な応答などのインタラクティブなフォーム動作を実現します。FDF JavaScriptはこの機能を拡張し、JavaScriptアクションをPDFドキュメント本体とは別に保存し、フォームデータと共にインポートすることを可能にします。
FDF JavaScriptは、PDFフォームの自動化された動作を定義するFDFファイル内に含まれるJavaScriptコードです。PDF文書内に直接埋め込まれるJavaScriptとは異なり、FDF JavaScriptはフォームフィールドデータやアノテーションと共にFDFファイルに外部保存されます。FDFファイルがPDFにインポートされると、JavaScriptアクションは特定のフォームフィールドまたはドキュメントレベルのイベントに関連付けられます。このアプローチにより、基本となるPDFファイル構造を変更することなく、フォームの動作を配布、更新、または複数のPDF文書に適用することができます。FDF JavaScriptは、PDF JavaScriptと同じJavaScript APIに従い、
(
Citation: N.A., 2020
(N.A.).
(2020).
Document management — Portable document format — Part 2: PDF 2.0
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/75839.html
)
で定義されているフォームフィールド、文書プロパティ、およびインタラクティブ機能へのアクセスを提供します。
フィールド辞書(Field dictionary)は、PDF文書内のインタラクティブフォームフィールドのプロパティと動作を定義するPDF辞書オブジェクトです。
(
Citation: N.A., 2020
(N.A.).
(2020).
Document management — Portable document format — Part 2: PDF 2.0
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/75839.html
)
で規定されているように、各フィールド辞書には必須エントリとオプションエントリが含まれており、フィールドのタイプ(テキスト、ボタン、選択など)、名前、現在の値、外観、動作フラグを決定します。フィールド辞書はPDFフォーム(AcroForms)の基本的な構成要素であり、PDF文書内でのユーザーインタラクションとデータ収集を可能にします。
フィールド辞書は、PDFファイル内の構造化データオブジェクトであり、単一のフォームフィールドの属性と機能を完全に記述します。画面上でユーザーが目にする視覚的なアノテーションとは異なり、フィールド辞書には基礎となるデータモデルが格納されており、フィールドの階層的な名前、タイプ分類(ボタン、テキスト、選択、署名)、デフォルト値と現在値、書式設定規則、検証スクリプト、読み取り専用ステータスや必須設定などの動作を制御する各種フラグが含まれます。
フィールド辞書とウィジェットアノテーション(Widget annotation)は異なります。フィールド辞書は論理的なフィールドプロパティを定義するのに対し、ウィジェットアノテーションは視覚的な表示とユーザーインタラクション領域を処理します。単一のフィールド辞書は複数のウィジェットアノテーションと関連付けることができ、同じフィールドをPDF文書の異なるページに表示することが可能です。また、フィールド辞書は、文書内のすべてのインタラクティブフォームフィールドのコンテナとして機能するより広範なフォーム辞書(AcroForm辞書)とも異なります。
フィールド辞書の理解は、PDFフォームをプログラムで作成、変更、またはデータ抽出する必要がある開発者にとって不可欠です。PDFフォームを生成するアプリケーションを構築する際、開発者は適切なタイプ指定とフラグを持つ正しくフォーマットされたフィールド辞書を構築し、異なるPDFビューア間でフィールドが正しく動作することを保証する必要があります。送信されたフォームからデータを抽出するアプリケーションの場合、フィールド辞書の解析はフィールド名や値を取得し、データタイプを検証するために必要です。
フィールドフラグは、PDFドキュメント内のインタラクティブなフォームフィールドの動作と特性を制御するビット単位の整数値です。これらのフラグは、
(
Citation: N.A., 2020
(N.A.).
(2020).
Document management — Portable document format — Part 2: PDF 2.0
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/75839.html
)
で定義されているように、フィールドが読み取り専用か、必須か、複数行のテキストをサポートするかなどのプロパティを決定します。フィールドフラグ値内の特定のビットを設定またはクリアすることで、開発者はユーザーがフォームフィールドとやり取りする方法を正確に構成できます。フィールドフラグは、データ検証とユーザーインターフェースの制約を適用する堅牢でアクセシブルなフォームを作成するために不可欠です。
フィールドフラグは、PDFフォームフィールドのディクショナリ内の/Ffキーの下に整数値として格納される一連のバイナリフラグです。この整数の各ビット位置は、フィールドの特定の動作またはプロパティに対応しています。例えば、ビット1(値2)はフィールドが読み取り専用かどうかを制御し、ビット13(値4096)はテキストフィールドが複数行を許可するかどうかを決定します。
(
Citation: N.A., 2020
(N.A.).
(2020).
Document management — Portable document format — Part 2: PDF 2.0
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/75839.html
)
で指定されているように、異なるフィールドタイプ(テキストフィールド、ボタン、選択フィールド)は、異なるフラグのサブセットをサポートします。
フォームフィールドフラグは、PDFの仕様で定義されているビットフラグであり、インタラクティブなフォームフィールドの動作と特性を制御します。
(
Citation: N.A., 2020
(N.A.).
(2020).
Document management — Portable document format — Part 2: PDF 2.0
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/75839.html
)
で規定されているように、これらのフラグはフィールドが読み取り専用であるか、送信に必須であるか、複数選択をサポートするかなどのプロパティを決定します。PDFドキュメント内の各フォームフィールドタイプには、完全な動作プロファイルを定義するために、複数のフラグを同時に設定することができます。
フォームフィールドフラグは、個々のビットがPDFフォームフィールドの特定の動作属性を表す整数値です。外観や構造を定義するフォームフィールドプロパティとは異なり、フラグは特にユーザーインタラクションと検証ルールを制御します。各フラグは32ビット整数内の単一のビット位置に対応し、ビット演算を使用して複数のフラグを組み合わせることができます。一般的なフラグには、ReadOnly(ユーザーによる変更を防止)、Required(送信前に入力を必須化)、NoExport(フォーム送信からフィールドを除外)、Password(テキスト入力をマスク)、Multiline(複数行のテキストを許可)、MultiSelect(リストフィールドで複数選択を許可)などがあります。PDF仕様
(
Citation: N.A., 2020
(N.A.).
(2020).
Document management — Portable document format — Part 2: PDF 2.0
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/75839.html
)
では、各フォームフィールドタイプに適用可能なフラグが定義されています。例えば、Pushbuttonフラグはボタンフィールドにのみ適用され、Comboフラグは選択フィールドにおいてコンボボックスとリストボックスを区別します。