property FormFieldInfo[Index: Integer]: TPdfFormFieldInfo; // read only
FormFieldInfo restituisce un record snapshot TPdfFormFieldInfo per l'annotazione widget del campo di
modulo all'Index a base zero sulla pagina attualmente attiva. Il record offre una vista fortemente tipizzata di un widget
di campo AcroForm senza dover scavalcare l'handle FPDF_ANNOTATION sottostante. La sezione 12.7 della specifica
PDF 1.7 definisce i tipi di campo e i flag sottostanti
Il record contiene il Name del campo (percorso completo attraverso ogni
gruppo di campi genitore, es. "ordine.spedizione.indirizzo"), l'
AlternateName usato per i tooltip accessibili, l'enumerazione
FieldType (fiPushButton, fiCheckBox,
fiRadioButton, fiTextField, fiListBox,
fiComboBox, fiSignature, oppure fiUnknown), i
bit Flags (ffReadOnly, ffRequired,
ffNoExport, …), l'ExportValue così come scritto in un
export FormData, il flag Checked per i campi booleani, la
FontSize usata per il rendering, e gli array di opzioni
OptionLabels / OptionSelected usati da caselle combinate e di riepilogo
I widget radio button che appartengono a un gruppo riempiono inoltre GroupCount
e GroupIndex
Gli indici validi sono 0 .. FormFieldCount - 1. Il record è un value type;
modificarne i campi non riscrive sul documento. Per cambiare il valore di un
campo, assegna tramite FormField[Index]; per alterare la bitmask dei flag chiama
SetFormFieldFlagsAt. La lettura è lazy — PDFium decodifica nomi di campo Unicode,
etichette di opzione e valori di export on demand — quindi metti in cache il risultato quando
iteri molti campi più volte
| Index | Indice del widget a base zero sulla pagina corrente (0 .. FormFieldCount - 1) |
Name per deduplicare tra
paginefiSignature) espongono Name e rettangolo
ma nessun byte di firma; usa Signature[I] a livello documento per ottenere
il contenuto PKCS#7GroupCount / GroupIndex per
distinguerliFormFieldCount è 0 e
questo indicizzatore non è mai chiamabile
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;