Spire.PDF 12.10.7 のリリースをお知らせいたします。本バージョンでは、PDF フォームフィールドの作成、読み取り、変更、フラット化を行うための新しい名前空間を追加しました。また、XFAフォームへの対応を拡張し、XML、FDF、XFDF 形式によるフォームデータのインポートとエクスポートをサポートしました。これらの機能強化により、開発者はインタラクティブな PDF フォームをより柔軟かつ効率的に処理できるようになります。
| カテゴリー | ID | 説明 |
| 新機能 | — | Spire.Pdf.Interactive.Forms 名前空間を追加し、AcroForm フィールドの作成、読み取り、変更、フラット化に対応しました。 |
| 新機能 | — | Spire.Pdf.Interactive.Forms.Xfa 名前空間を通じて、XFA フォームにアクセスして処理する機能を追加しました。 |
| 新機能 | — | PdfForm を通じて、XML、FDF、XFDF 形式で PDF フォームデータをインポートおよびエクスポートする機能を追加しました。 |
1. Spire.Pdf.Interactive.Forms 名前空間を追加
新しい Spire.Pdf.Interactive.Forms 名前空間は、PDF フォームフィールドの作成、読み取り、変更、フラット化を行うための統一された包括的な API を提供します。 一般的な AcroForm フィールドタイプに対応しており、主なプロパティとメソッドは以下のとおりです。
対応する AcroForm フィールドタイプ
| フィールドタイプ | プロパティ / メソッド | 説明 |
| テキストフィールド PdfTextField | IsMultiline | 複数行の入力を許可するかどうかを指定します。 |
| IsPassword | フィールドの内容をマスク表示するかどうかを指定します。 | |
| MaxLen | 入力可能な最大文字数を指定します。 | |
| IsComb | 文字ごとのセルを使用するかどうかを指定します。 | |
| DoNotSpellCheck | スペルチェックを無効にするかどうかを指定します。 | |
| Text | フィールドのテキスト内容を取得または設定します。 | |
| Font | フィールドのフォントを取得または設定します。 | |
| チェックボックス PdfCheckBoxField | IsChecked | チェックボックスが選択されているかどうかを取得または設定します。 |
| OnValue | チェック時のエクスポート値を取得または設定します。 | |
| Style | 外観スタイルを取得または設定します。スタイルには Check、Circle、Cross、Diamond、Square、Star があります。 | |
| ラジオボタン PdfRadioButtonField | Options | 各選択肢のエクスポート値のコレクションを取得します。 |
| SelectedIndex | 現在選択されている項目のインデックスを取得または設定します。 | |
| SelectedValue | 現在選択されている項目のエクスポート値を取得または設定します。 | |
| NoToggleToOff | 選択後に選択解除を禁止するかどうかを指定します。 | |
| AddOption() | ページに新しいラジオボタンの選択肢を追加します。 | |
| コンボボックス PdfComboBoxField | Items | ドロップダウン項目のコレクションを取得します。 |
| IsMultiSelect | 複数選択を許可するかどうかを指定します。 | |
| SelectedIndex | 現在選択されている項目のインデックスを取得または設定します。 | |
| SelectedValue | 現在選択されている項目のエクスポート値を取得または設定します。 | |
| リストボックス PdfListBoxField | Items | リスト項目のコレクションを取得します。 |
| IsMultiSelect | 複数選択を許可するかどうかを指定します。 | |
| TopIndex | 最初に表示されるリスト項目のインデックスを取得または設定します。 | |
| SelectedIndices | 選択されている項目のインデックスのコレクションを取得します。 | |
| SelectedValues | 選択されている項目のエクスポート値のコレクションを取得します。 | |
| プッシュボタン PdfPushButtonField | Text / RolloverText / DownText | 通常時、マウスオーバー時、押下時に表示するボタンテキストを取得または設定します。 |
| Icon / RolloverIcon / DownIcon | 各状態で表示するアイコンを取得または設定します。 | |
| Layout | アイコンとテキストのレイアウトを取得または設定します。 | |
| Action | ボタンのクリック時に実行するアクションを取得または設定します。 | |
| 署名フィールド PdfSignatureField | Signature | フィールドに関連付けられたデジタル署名オブジェクトを取得します。 |
上記の各フィールド固有のメンバーに加え、すべてのフィールドは PdfField から以下の共通プロパティを継承します。
- IsReadOnly:フィールドが読み取り専用かどうかを指定します。
- IsRequired:フィールドが必須かどうかを指定します。
- AlternateName:フィールドの代替名を取得または設定します。
- MappingName:フィールドのマッピング名を取得または設定します。
- DefaultAppearance:フィールドのデフォルト外観を取得または設定します。
また、すべてのフィールドで Flatten() メソッドを呼び出し、フォームフィールドを静的なページコンテンツに変換できます。
2. XFA フォームへの対応を拡張
本バージョンでは、Spire.Pdf.Interactive.Forms.Xfa サブ名前空間を通じて、XFA フォームにアクセスする機能も追加しました。 XFA フォームのフィールド名やフィールドオブジェクトを取得し、フィールドの値を確認できるほか、さまざまな種類の XFA フィールドを処理できます。
対応する XFA フォームフィールドタイプ
| フィールドタイプ | プロパティ / メソッド | 説明 |
| XFA フォーム XfaForm | FieldNames | フォームテンプレート内のフィールド名の一覧を取得します。 |
| XfaFields | フォームテンプレート内のフィールドオブジェクトの一覧を取得します。 | |
| Count | フォームフィールドの数を取得します。 | |
| GetField(name) | 名前を指定してXFAフィールドを取得します。 | |
| CheckFieldExists(name) | 指定したフィールドが存在するかどうかを確認します。 | |
| テキストフィールド XfaTextField | Value | フィールドのテキスト値を取得または設定します。 |
| 数値フィールド XfaNumericField | Format | 数値の書式文字列を取得または設定します。 |
| Value | フィールドの値を10進数として取得または設定します。 | |
| チェックボックス XfaCheckBoxField | IsChecked | チェックボックスが選択されているかどうかを取得または設定します。 |
| ラジオボタン XfaRadioButtonField | Options | 各選択肢のエクスポート値の一覧を取得します。 |
| SelectedIndex | 現在選択されている項目のインデックスを取得または設定します。 | |
| SelectedValue | 現在選択されている項目のエクスポート値を取得または設定します。 | |
| NoToggleOff | 選択後に選択解除を禁止するかどうかを指定します。 | |
| 選択リスト XfaChoiceField | Items | 表示値を含む選択可能な項目の一覧を取得します。 |
| IsMultiSelect | 複数選択に対応するかどうかを指定します。 | |
| SelectedItem | 現在選択されている単一の項目を取得または設定します。 | |
| SelectedItems | 現在選択されている項目の一覧を取得します。 | |
| 日付/時刻フィールド XfaDateTimeField | Value | フィールドの日付/時刻の値を取得または設定します。 |
| 画像フィールド XfaImageField | Image | フィールドに関連付けられた画像を取得または設定します。型はStreamまたはImageです。 |
| バーコードフィールド XfaBarcodeField | Value | バーコードの値を取得または設定します。 |
| Length | バーコードの長さを取得または設定します。 | |
| StartChar | バーコードの開始文字を取得または設定します。 | |
| EndChar | バーコードの終了文字を取得または設定します。 |
すべての XFA フィールドは、XfaField から以下の共通プロパティを継承します。
- Name:フィールド名。
- XfaForm:フィールドが属するXFAフォーム。
- FieldType:フィールドタイプの識別子。
なお、XfaSignatureField(署名フィールド)と XfaPushButtonField(プッシュボタン)は、追加のパブリックプロパティを定義しておらず、主に継承した共通メンバーを通じてアクセスします。
3. フォームデータのインポートとエクスポートに対応
PdfForm を使用して、XML、FDF、XFDF 形式のフォームデータをインポートおよびエクスポートできるようになりました。
この機能により、PDF フォーム、業務システム、サードパーティ製 PDF ツール間でフォームデータを簡単に交換できます。
以下のコードは、フォームデータを XFDF ファイルにエクスポートし、そのファイルからデータを再度インポートする方法を示しています。
コード例
using System.Drawing;
using System.Collections.Generic;
using Spire.Pdf;
using Spire.Pdf.Graphics;
using Spire.Pdf.Interactive.Forms;
PdfDocument doc = new PdfDocument();
PdfPageBase page = doc.Pages.Add();
// PdfForm.Create() を使用してフォームコンテナーを取得
PdfForm form = PdfForm.Create(doc);
// テキストフィールドを作成してページに追加
PdfTextField nameField = new PdfTextField(form, "Address.Street");
nameField.DefaultAppearance = new PdfDefaultAppearance(
new PdfFont(PdfFontFamily.Helvetica, 12), new PdfRGBColor(0, 0, 0));
nameField.AddWidget(page, new RectangleF(100, 100, 250, 30));
nameField.Value = "123 Main St";
// 名前とプレフィックスでフィールドを取得
PdfField field = form.GetField("Address.Street");
List<PdfField> addressFields = form.Fields.FindByPrefix("Address");
// フォームをフラット化してドキュメントを保存
form.Flatten();
doc.SaveToFile("output.pdf");
Form data can also be exchanged directly in formats such as XFDF:
// フォームデータをXFDF形式でエクスポートし、ファイルから再度インポート
form.ExportData("form.xfdf", DataFormat.XFDF, "PurchaseOrder");
form.ImportData("form.xfdf", DataFormat.XFDF);






