Form field types(フォームフィールドタイプ)は、インタラクティブなPDFフォームにおいて/FT(Field Type)キーで指定される値で、各フォームフィールドのカテゴリと動作を定義します。
(
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
)
で定義されているように、これらのタイプはユーザーがフォームフィールドとどのように相互作用できるか、どのようなデータを入力できるか、そしてそのデータがどのように検証および表示されるかを決定します。標準的な4つのform field typesは、/Tx(テキストフィールド)、/Btn(ボタンフィールド)、/Ch(選択フィールド)、/Sig(署名フィールド)です。
Form field typesは、AcroFormフィールドのfield dictionary内の必須エントリで、PDFフォーム内の各インタラクティブ要素を分類します。/FTキーは4つの定義済み名前値のいずれかを受け入れ、それぞれがユーザーインタラクションの異なるカテゴリを表します。テキストフィールド(/Tx)はキーボード入力による文字列を受け入れます。ボタンフィールド(/Btn)は、プッシュボタン、チェックボックス、ラジオボタンを含みます。選択フィールド(/Ch)は、事前定義されたオプションから選択するためのドロップダウンリストとリストボックスを提供します。署名フィールド(/Sig)は、ドキュメントにデジタル署名を適用するための特殊なフィールドです。
フィールド名(ユーザー定義の識別子)やfield flags(タイプ内の動作を変更するもの)とは異なり、form field typesは基本的なインタラクションモデルを確立します。フィールドのタイプは、関連するappearance streams、widget annotations、値のエンコーディングの構造を決定するため、フィールドオブジェクト全体を置き換えることなく作成後に変更することはできません。
テキストフィールドは、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ドキュメント内でのデータ収集とユーザー入力を可能にします。テキストフィールドは、単一行または複数行の入力用に設定でき、フォント、テキスト配置、文字数制限などの様々な書式設定オプションをサポートしています。
テキストフィールドは、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
)
によると、テキストフィールドはフィールドタイプ(FT)エントリが「Tx」であるフィールドディクショナリによって表現され、入力動作、外観、検証を制御する様々な属性を含むことができます。
XFA packetは、PDFドキュメントに埋め込まれたXFA(XML Forms Architecture)フォーム内の独立したXMLコンポーネントです。XFAフォームは、その構造、データ、および設定を個別のXML packetとして保存し、それぞれがフォームアーキテクチャにおいて特定の役割を果たします。XFAは以前の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
)
ではAcroFormsのようなよりアクセシブルで標準化されたフォーム技術を推奨し、XFAは非推奨となりました。
XFA packetは、PDF内のXFAフォームを集合的に定義する個別のXMLフラグメントです。各packetはフォームに関する特定の情報を含んでおり、例えばtemplate packet(フォームレイアウトとフィールドを定義)、datasets packet(フォームデータを格納)、config packet(処理命令を指定)、その他いくつかの特殊なpacketがあります。これらのpacketは、PDFのXFAストリーム内に<xdp:xdp>ルート要素でラップされた一連のXML要素として保存されます。PDFのネイティブアノテーションシステムと直接統合されるAcroFormフィールドとは異なり、XFA packetは独自の自己完結型XML表現を維持しており、互換性のあるXFAプロセッサーが解釈してレンダリングする必要があります。
XFA packetの理解は、レガシーPDFシステムを保守する開発者やXFA技術から移行する開発者にとって重要です。多くの組織では依然としてXFAフォームを基盤としたドキュメントワークフローを使用しており、開発者はこれらのフォームからデータを抽出したり、最新の代替技術に変換したりする必要があります。
(
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
)
でXFAが非推奨となり、適切にタグ付けされたAcroFormsと比較してアクセシビリティに大きな課題があるため、開発者はXFA packetを移行計画が必要なレガシー技術として認識すべきです。PDFをプログラムで処理する際、XFA packetを識別することで適切な処理戦略を決定でき、最新のPDFプロセッサーとの互換性問題の可能性を警告できます。
XFA(XML Forms Architecture)は、Adobeが開発したXMLベースのフォーム技術であり、PDF文書内でインタラクティブフォームを作成するための代替アプローチです。従来のAcroFormsとは異なり、XFAはフォームデータとプレゼンテーションロジックをXML形式で保存し、PDFラッパー内に埋め込みます。ただし、XFAは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 2.0では非推奨となっており、現代のPDF開発においてはますます時代遅れになっています。
XFAは、フォーム構造、ロジック、データをPDFコンテンツストリームとは別にXMLで定義する独自のフォーム技術です。XFAフォームは、フォームの外観、動作、データモデルを記述するXML文書として存在し、互換性のあるビューアによってレンダリングされます。これは、ネイティブなPDFオブジェクトとアノテーションを使用してPDF構造内に直接フォームフィールドを作成するAcroFormsとは根本的に異なります。XFAフォームは静的(固定レイアウト)または動的(データに基づいてリフローおよびリサイズ可能)のいずれかであり、特に動的XFAフォームは標準的なPDF処理ツールとの互換性がありません。PDF 2.0仕様
(
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
)
はXFAを明示的に非推奨としており、PDF/UA
(
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
)
などのアクセシビリティ標準に準拠した標準的なPDFフォーム実装への業界の移行を反映しています。
XFDF(XML Forms Data Format)は、XMLベースのファイル形式であり、PDFドキュメントのフォームフィールドデータとアノテーションを、可搬性の高いテキストベースの構造で表現するように設計されています。PDFファイル内に完全なフォームデータを埋め込む代わりに、軽量な選択肢を提供し、システムやアプリケーション間での効率的なデータ交換を可能にします。XFDFは、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
)
において、フォームフィールド値とインタラクティブ要素のインポートおよびエクスポートの方法として正式に定義されています。
XFDFは、PDFフォームデータのXML表現であり、フォームフィールド値、アノテーション、およびそれらのプロパティを構造化されたテキスト形式でエンコードします。PDF構文に基づくFDF(Forms Data Format)とは異なり、XFDFは標準的なXMLマークアップを使用するため、最新のWebサービスや開発フレームワークとの生成、解析、統合が容易になります。XFDFファイルには、実際のフォームテンプレートやページコンテンツは含まれず、データ値、フィールド名、アノテーションの詳細のみが含まれます。この分離により、フィールド名が一貫している限り、同じXFDFデータを異なるバージョンのPDFフォームテンプレートとマージできます。XFDFファイルは通常、URIを通じてソースPDFドキュメントを参照し、データと対応するフォーム構造との関係を確立します。
PDFフォームを扱う開発者にとって、XFDFは最新のスケーラブルなアプリケーションを構築する上で大きな利点を提供します。そのXML構造は、すでにXMLデータを処理しているWebサービス、REST API、エンタープライズシステムとシームレスに統合でき、フォーム値を抽出するためだけに専用のPDF解析ライブラリを使用する必要がありません。XFDFは、フォームデータをPDFドキュメント自体とは別に保存、送信、処理できる効率的なワークフローを可能にし、帯域幅要件を削減し、データ管理を簡素化します。これは、サーバーサイドのフォーム処理、バッチデータ操作、ドキュメントアーカイブシステム、クラウドベースのドキュメントワークフローなど、完全なPDFファイルを扱うことなくフォーム送信を収集・分析する必要があるシナリオで特に有用です。人間が読めるXML形式は、デバッグを簡素化し、標準的なXMLツールや変換を使用した直接操作も可能にします。
ImportDataアクションは、外部ファイルから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
)
で定義されているように、このアクションにより、開発者は手動でのデータ入力を行わずにプログラム的にフォームフィールドに値を設定でき、データベース、スプレッドシート、またはその他のデータソースからフォームに事前入力するワークフローを効率化できます。
ImportDataアクションは、PDF仕様で利用可能な複数のアクションタイプの1つで、インタラクティブなPDFドキュメントへのフォームデータの取り込みを専門的に処理します。データを外部に送信するSubmit-formアクションや、フィールドをクリアするReset-formアクションとは異なり、ImportDataアクションは外部データをドキュメントのフォームフィールドに取り込みます。このアクションは通常、Forms Data Format(FDF)またはXML Forms Data Format(XFDF)形式でデータを取り込み、フィールド名に基づいて外部ファイルの値をPDF内の対応するフォームフィールドにマッピングします。このアクションは、ユーザーインタラクション(ボタンクリックなど)、ドキュメントイベント(ドキュメントを開くときなど)、またはPDF処理ライブラリを通じたプログラム的な実行など、さまざまな方法でトリガーできます。
エンタープライズアプリケーションでPDFフォームを扱う開発者にとって、ImportDataアクションはデータ入力ワークフローの自動化に不可欠です。エンドユーザーに手動でフォームに入力させる代わりに、開発者は既存システムからのデータでドキュメントを事前入力でき、データ入力エラーを大幅に削減し、ユーザーエクスペリエンスを向上させることができます。この機能は、パーソナライズされた契約書の生成、事前入力済みの税務フォームの作成、カスタマイズされたレポートの作成、またはバックエンドデータベースからPDFフォームにデータが流れるドキュメントアセンブリシステムの実装などのシナリオで不可欠です。このアクションにより、PDFドキュメントとより広範なアプリケーションアーキテクチャの統合が可能になり、PDFを静的なエンドポイントではなく、自動化されたビジネスプロセスのアクティブな参加者にすることができます。
ResetFormアクションは、
(
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文書内のフォームフィールドをデフォルト値に復元します。ユーザーの操作またはプログラムによる実行でトリガーされると、このアクションはユーザーが入力したデータをクリアし、指定されたフィールドを元の状態に戻します。このアクションタイプはフォームの使いやすさにとって不可欠な機能を提供し、ユーザーが文書を閉じることなく誤った入力をクリアしたり、最初からやり直したりすることを可能にします。
ResetFormアクションは、PDF仕様で利用可能な複数のアクションタイプの1つで、インタラクティブなフォームフィールド(AcroFormフィールド)を特に対象としています。フォームデータを外部の宛先に送信するSubmitFormアクション、またはデータをフォームに読み込むImportDataアクションとは異なり、ResetFormアクションはフィールドディクショナリで定義されたデフォルト値にフィールド値をリセットすることで、完全に文書内で動作します。
このアクションは、PDF構造内では/ResetFormというアクションタイプを持つディクショナリとして表現されます。文書内のすべてのフォームフィールドをリセットするように構成することも、オプションのFields配列エントリを通じて指定されたサブセットのみをリセットするように構成することもできます。このアクションには、指定されたフィールドをリセットするか(デフォルトの動作)、または指定されたフィールド以外のすべてのフィールドをリセットするかを制御するFlagsエントリも含まれています。
(
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(Default Value)エントリに格納されます。フィールドにデフォルト値が定義されていない場合、ResetFormアクションはフィールドを完全にクリアし、空の状態に戻します。
SubmitForm actionは、ユーザーの操作によって起動されると、PDFドキュメントからフォームフィールドのデータを指定されたWebサーバーまたは電子メールアドレスに送信するインタラクティブな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(Forms Data Format)、XFDF(XML Forms Data Format)、HTML、PDFなどの形式でフォームデータをパッケージ化することにより、PDFフォームをWebベースのワークフローやバックエンドシステムと統合することを可能にします。SubmitForm actionは通常、ユーザーが入力完了したフォームデータを指定されたURLに送信するために使用するボタンウィジェットやその他のフォームコントロールに関連付けられます。
SubmitForm actionは、PDF仕様で利用可能ないくつかのアクションタイプの1つであり、特にフォームフィールドの値を外部の宛先にエクスポートおよび送信する処理を担当します。フォームデータをクリアするResetForm actionや、データをフォームに取り込むImportData actionとは異なり、SubmitForm actionはPDFドキュメントからデータを外部に送出します。このアクションはPDFのアクション辞書内で定義され、送信URL、使用するデータ形式、送信に含めるまたは除外するフィールドを指定するパラメータが含まれます。
(
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
)
によると、開発者はSubmitForm actionを設定して、すべてのフィールド、現在表示されているフィールドのみ、または包含・除外リストに基づく特定のフィールドのサブセットを送信できます。アプリケーションの要件に応じて、PDFドキュメント全体またはフォームデータのみを送信するようにアクションを設定できます。