property FormFieldInfo[Index: Integer]: TPdfFormFieldInfo; // read only
FormFieldInfo は現在アクティブなページ上のゼロベースの Index のフォームフィールドウィジェット注釈のスナップショット TPdfFormFieldInfo レコードを返します。このレコードは基盤の FPDF_ANNOTATION ハンドルを解読せずに 1 つの AcroForm フィールドウィジェットの厳密に型指定されたビューを提供します。PDF 1.7 仕様 12.7 節が基盤のフィールドタイプとフラグを定義します
レコードはフィールド Name(任意の親フィールドグループを通る完全修飾パス、例: "order.shipto.address")、アクセシビリティツールチップに使われる AlternateName、FieldType 列挙(fiPushButton、fiCheckBox、fiRadioButton、fiTextField、fiListBox、fiComboBox、fiSignature、または fiUnknown)、ビットセット Flags(ffReadOnly、ffRequired、ffNoExport、…)、FormData エクスポートへ書き込まれる ExportValue、ブール型フィールドの Checked フラグ、レンダリングに使われる FontSize、コンボボックスとリストボックスが使うオプションセット配列 OptionLabels / OptionSelected を持ちます。グループに属するラジオボタンウィジェットはさらに GroupCount と GroupIndex を埋めます
有効なインデックスは 0 .. FormFieldCount - 1 です。レコードは値型であり、そのフィールドを変更しても文書へは書き戻されません。フィールドの値を変更するには FormField[Index] を通じて代入します。フラグビットマスクを変更するには SetFormFieldFlagsAt を呼び出します。読み取りは遅延です — PDFium は Unicode フィールド名、オプションラベル、エクスポート値をオンデマンドでデコードします — そのため多くのフィールドを複数回反復するときは結果をキャッシュしてください
| Index | 現在ページのゼロベースのウィジェットインデックス(0 .. FormFieldCount - 1) |
Name を使いますfiSignature)は Name と矩形を公開しますが署名バイトはありません。PKCS#7 コンテンツを取得するには文書レベルの Signature[I] を使いますGroupCount / GroupIndex を比較しますFormFieldCount は 0 になり、このインデクサは決して呼び出せません
var I, J: Integer;
var Info: TPdfFormFieldInfo;
for I := 0 to Pdf1.FormFieldCount - 1 do
begin
Info := Pdf1.FormFieldInfo[I];
Memo1.Lines.Add(Format('%s [%d] export=%s checked=%s',
[Info.Name, Ord(Info.FieldType), Info.ExportValue, BoolToStr(Info.Checked, True)]));
for J := 0 to High(Info.OptionLabels) do
Memo1.Lines.Add(' ' + Info.OptionLabels[J]);
end;