PDFium Component Docs

FormFieldInfo Właściwość

Component: TPdf  ·  Unit: PDFium
Pełny rekord opisujący pole formularza o podanym indeksie na aktywnej stronie

Syntax

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

Description

FormFieldInfo zwraca migawkowy rekord TPdfFormFieldInfo dla adnotacji widżetu pola formularza o liczonym od zera indeksie Index na aktualnie aktywnej stronie. Rekord zapewnia silnie typizowany widok jednego widżetu pola AcroForm bez konieczności rozbierania na części bazowego uchwytu FPDF_ANNOTATION. Bazowe typy pól i flagi definiuje specyfikacja PDF 1.7, sekcja 12.7

Rekord przenosi nazwę pola Name (w pełni kwalifikowaną ścieżkę przez nadrzędne grupy pól, np. "order.shipto.address"), nazwę AlternateName używaną jako dostępne etykiety tooltip, wyliczenie FieldType (fiPushButton, fiCheckBox, fiRadioButton, fiTextField, fiListBox, fiComboBox, fiSignature lub fiUnknown), zestaw bitowy Flags (ffReadOnly, ffRequired, ffNoExport, …), wartość ExportValue zapisywaną do eksportu FormData, flagę Checked dla pól logicznych, rozmiar FontSize używany przy renderowaniu oraz tablice zestawów opcji OptionLabels / OptionSelected używane przez pola kombi i listy. Widżety przycisków radiowych należące do grupy dodatkowo wypełniają GroupCount i GroupIndex

Poprawne indeksy to 0 .. FormFieldCount - 1. Rekord jest typem wartościowym; modyfikowanie jego pól nie zapisuje nic z powrotem do dokumentu. Aby zmienić wartość pola, przypisuj przez FormField[Index]; aby zmienić maskę bitową flag, wywołaj SetFormFieldFlagsAt. Odczyt jest leniwy — PDFium dekoduje nazwy pól Unicode, etykiety opcji i wartości eksportowe na żądanie — więc zapamiętuj wynik, gdy wielokrotnie iterujesz po wielu polach

Parameters

IndexLiczony od zera indeks widżetu na bieżącej stronie (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