PDFium Delphi Component Docs

FormFieldInfo Proprietà

Componente: TPdf  ·  Unità: PDFium
Record completo che descrive un campo modulo a un dato indice sulla pagina attiva

Syntax

property FormFieldInfo[Index: Integer]: TPdfFormFieldInfo; // read only

Description

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

Parameters

IndexIndice del widget a base zero sulla pagina corrente (0 .. FormFieldCount - 1)

Remarks

Example

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;

See Also

FormField, FormFieldCount, FormFieldInfoAt, FormFieldAt, FormType