property FormFieldInfo[Index: Integer]: TPdfFormFieldInfo; // read only
FormFieldInfo retourneert een momentopname-TPdfFormFieldInfo-record voor de formulierveldwidgetannotatie op de op nul gebaseerde Index op de momenteel actieve pagina. Het record biedt een sterk getypeerde weergave van één AcroForm-veldwidget zonder de onderliggende FPDF_ANNOTATION-handle te hoeven kraken. PDF 1.7-specificatie, sectie 12.7 definieert de onderliggende veldtypen en vlaggen.
Het record draagt de veld-Name (volledig gekwalificeerd pad door een eventuele bovenliggende veldgroep, bijv. "order.shipto.address"), de AlternateName gebruikt voor toegankelijke knopinfo, de FieldType-enumeratie (fiPushButton, fiCheckBox, fiRadioButton, fiTextField, fiListBox, fiComboBox, fiSignature of fiUnknown), de bit-set Flags (ffReadOnly, ffRequired, ffNoExport, …), de ExportValue zoals geschreven naar een FormData-export, de vlag Checked voor booleaanse velden, de FontSize gebruikt voor rendering, en de optieset-arrays OptionLabels / OptionSelected gebruikt door combinatie- en lijsten. Keuzerondje-widgets die tot een groep behoren vullen bovendien GroupCount en GroupIndex.
Geldige indices zijn 0 .. FormFieldCount - 1. Het record is een waardetype; het wijzigen van de velden schrijft niet terug naar het document. Om de waarde van een veld te wijzigen wijst u toe via FormField[Index]; om het vlaggen-bitmasker te wijzigen roept u SetFormFieldFlagsAt aan. Lezen is lui — PDFium decodeert Unicode-veldnamen, optielabels en exportwaarden op aanvraag — cachel dus het resultaat wanneer u veel velden meerdere keren doorloopt.
| Index | Op nul gebaseerde widgetindex op de huidige pagina (0 .. FormFieldCount - 1). |
Name om te dedupliceren over
pagina's.fiSignature) tonen Name en rechthoek,
maar geen handtekeningbytes; gebruik documentniveau Signature[I] om de
PKCS#7-inhoud te verkrijgen.GroupCount / GroupIndex om
ze uit elkaar te houden.FormFieldCount 0 en
is deze indexeerder nooit aanroepbaar.
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;