Docs PDFiumPas

FormFieldInfo Propriedade

Esta entrada API preserva identificadores, assinaturas, blocos de código e termos PDF em sua forma original.
Componente: TPdf  ·  Unidade: PDFium
Registro completo que descreve um campo de formulário no índice informado da página ativa

Sintaxe

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

Descrição

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

Parâmetros

IndexÍndice baseado em zero da widget na página atual (0 .. FormFieldCount - 1)

Observações

Exemplo

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;

Consulte também

FormField, FormFieldCount, FormFieldInfoAt, FormFieldAt, FormType