PDFium Delphi Component Docs

FormFieldInfo Eigenschaft

Komponente: TPdf  ·  Unit: PDFium
Vollständiger Datensatz, der ein Formularfeld an einem angegebenen Index auf der aktiven Seite beschreibt

Syntax

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

Description

FormFieldInfo liefert einen Schnappschuss-TPdfFormFieldInfo-Record für die Formularfeld-Widget-Annotation am 0-basierten Index auf der aktuell aktiven Seite. Der Record bietet eine streng typisierte Sicht auf ein AcroForm-Feld-Widget, ohne dass Sie das zugrunde liegende FPDF_ANNOTATION-Handle aufbrechen müssen. Der PDF 1.7 spec section 12.7 definiert die zugrunde liegenden Feldtypen und Flags

Der Record trägt den Feld-Name (voll qualifizierter Pfad durch alle übergeordneten Feldgruppen, etwa "order.shipto.address"), den AlternateName für zugängliche Tooltips, die FieldType-Aufzählung (fiPushButton, fiCheckBox, fiRadioButton, fiTextField, fiListBox, fiComboBox, fiSignature oder fiUnknown), das Bit-Set Flags (ffReadOnly, ffRequired, ffNoExport, …), den ExportValue, wie er in einen FormData-Export geschrieben wird, das Checked-Flag für Boolean-Felder, die FontSize für das Rendering und die Options-Arrays OptionLabels / OptionSelected, die Comboboxen und Listboxen verwenden Radiobutton-Widgets aus einer Gruppe füllen zusätzlich GroupCount und GroupIndex

Gültige Indizes sind 0 .. FormFieldCount - 1. Der Record ist ein Value-Type; seine Felder zu ändern schreibt nicht ins Dokument zurück. Um den Wert eines Felds zu ändern, über FormField[Index] zuweisen; die Flag-Bitmaske ändern Sie über SetFormFieldFlagsAt. Das Lesen ist lazy — PDFium dekodiert Unicode-Feld- namen, Options-Labels und Export-Werte bei Bedarf — cachen Sie das Ergebnis also, wenn Sie viele Felder mehrfach iterieren

Parameters

Index0-basierter Widget-Index auf der aktuellen Seite (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