property FormFieldInfo[Index: Integer]: TPdfFormFieldInfo; // nur lesbar
FormFieldInfo gibt einen Momentaufnahme-Datensatz TPdfFormFieldInfo
für die Formularfeld-Widget-Annotation am 0-basierten Index auf der
aktuell aktiven Seite zurück Der Datensatz bietet eine stark typisierte Sicht auf ein
AcroForm-Widget, ohne den zugrunde liegenden FPDF_ANNOTATION-Handle
öffnen zu müssen PDF 1.7 spec section 12.7 definiert die zugrunde liegenden Feldtypen
und Flags
Der Datensatz enthält den Feld-Name (voll qualifizierter Pfad durch
eine mögliche übergeordnete Feldgruppe, zum Beispiel
"order.shipto.address"), den für barrierefreie Tooltips verwendeten
AlternateName, die Enumeration FieldType
(fiPushButton, fiCheckBox, fiRadioButton,
fiTextField, fiListBox, fiComboBox,
fiSignature oder fiUnknown), das Bitset Flags
(ffReadOnly, ffRequired, ffNoExport, …),
den als FormData-Export geschriebenen ExportValue, das
Checked-Flag für boolesche Felder, die zum Rendern verwendete
FontSize sowie die Options-Arrays OptionLabels /
OptionSelected, die von Kombinations- und Listenfeldern genutzt werden
Widget-Schaltflächen, die zu einer Gruppe gehören, füllen außerdem
GroupCount und GroupIndex
Gültige Indizes sind 0 .. FormFieldCount - 1 Der Datensatz ist ein
Werttyp; das Ändern seiner Felder schreibt nichts zurück in das Dokument Um den Wert
eines Feldes zu ändern, weisen Sie über FormField[Index] zu; um die
Flag-Bitmaske zu ändern, rufen Sie SetFormFieldFlagsAt auf Das Lesen ist
lazy — PDFium dekodiert Unicode-Feldnamen, Optionsbeschriftungen und Exportwerte
bei Bedarf — daher sollten Sie das Ergebnis cachen, wenn Sie viele Felder
mehrfach durchlaufen
| Index | Zero-based widget index on the current page (0 .. FormFieldCount - 1). |
Name, um Seiten zu deduplizierenfiSignature) stellen Name und
Rechteck bereit, aber keine Signaturbytes; verwenden Sie
Signature[I] auf Dokumentebene, um den PKCS#7-Inhalt zu erhaltenGroupCount /
GroupIndex, um sie zu unterscheidenFormFieldCount
0 und dieser Indexer ist nie aufrufbar
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;