property FormFieldCount: Integer; // read only
FormFieldCount restituisce il numero di annotazioni widget di campo AcroForm sulla
pagina attualmente attiva. Ogni voce corrisponde a una annotazione widget (sottotipo
/Widget con un tipo di campo /FT) — input di testo, casella
di controllo, pulsante radio, casella di riepilogo, casella combinata, pulsante di comando o campo firma (sezione 12.7 della specifica
PDF 1.7)
Il valore è 0 quando Active è False, quando
il documento non è un AcroForm (FormType = ftNone) o quando la pagina non ha
widget interattivi. È una metrica per pagina; le pagine possono contenere widget che appartengono
allo stesso campo logico definito altrove nell'albero del documento — il PDF consente
a un campo di avere più piazzamenti widget (es. una firma visibile in copertina
e sull'ultima pagina)
Usa FormFieldInfo[Index] con indici da 0 a
FormFieldCount - 1 per ottenere un record TPdfFormFieldInfo:
tipo di campo, nome, nome alternativo, flag, etichette delle opzioni, valore corrente, valore di export,
stato di selezione e dimensione font. Per ottenere un campo via hit-testing di una coordinata di pagina usa
invece FormFieldAt[X, Y] o FormFieldInfoAt[X, Y]
FormType = ftXfaFull) portano la loro struttura interattiva
fuori dall'albero AcroForm; FormFieldCount può comunque riportare i widget
generati da XFA, ma il rendering XFA in sé è fuori dal perimetro di PDFium Delphi ComponentAnnotationCount si sovrappongono perché i widget sono un
sottoinsieme delle annotazioni. Usa questa proprietà quando ti servono solo i campiSetFormField invalida gli indici
Rileggi FormFieldCount dopo ogni mutazione
var I: Integer;
var Info: TPdfFormFieldInfo;
for I := 0 to Pdf1.FormFieldCount - 1 do
begin
Info := Pdf1.FormFieldInfo[I];
Memo1.Lines.Add(Format('%s = %s', [Info.Name, Info.ExportValue]));
end;