property FormFieldInfo[Index: Integer]: TPdfFormFieldInfo; // read only
FormFieldInfo retorna um registro instantâneo TPdfFormFieldInfo
para a anotação widget de campo de formulário no Index baseado em zero da
página atualmente ativa. O registro fornece uma visão fortemente tipada de um widget de
campo AcroForm sem precisar abrir o handle subjacente FPDF_ANNOTATION. A
seção 12.7 da especificação PDF 1.7 define os tipos e flags subjacentes do campo
O registro carrega o Name do campo, um caminho totalmente qualificado
através de qualquer grupo de campos pai, por exemplo "order.shipto.address",
o AlternateName usado em dicas de ferramenta acessíveis, a enumeração
FieldType (fiPushButton, fiCheckBox,
fiRadioButton, fiTextField, fiListBox,
fiComboBox, fiSignature ou fiUnknown), o conjunto
de bits Flags (ffReadOnly, ffRequired,
ffNoExport, …), o ExportValue escrito para uma exportação
FormData, a flag Checked para campos booleanos, o FontSize
usado na renderização e os vetores de opções OptionLabels /
OptionSelected usados por combos e listas. Widgets de radio button que
pertencem a um grupo também preenchem GroupCount e GroupIndex
Os índices válidos são 0 .. FormFieldCount - 1. O registro é um tipo de
valor; modificar seus campos não grava de volta no documento. Para alterar o valor de um
campo, atribua por meio de FormField[Index]; para alterar a máscara de flags, chame
SetFormFieldFlagsAt. A leitura é preguiçosa — o PDFium decodifica nomes de campo, rótulos de opção e valores de exportação Unicode sob demanda — então faça cache do resultado quando iterar muitos campos várias vezes
| Index | Índice baseado em zero da widget na página atual (0 .. FormFieldCount - 1) |
Name para eliminar duplicatas entre páginasfiSignature) expõem Name e o retângulo, mas não os bytes da assinatura; use Signature[I] no nível do documento para obter o conteúdo PKCS#7GroupCount / GroupIndex para diferenciá-losFormFieldCount é 0 e este indexador nunca pode ser chamado
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;