PDFium Delphi Component Docs

SetFormFieldFlags Método

Componente: TPdf  ·  Unidade: PDFium
Define flags de campo AcroForm para o campo de formulário no índice de anotação especificado na página atual

Syntax

procedure SetFormFieldFlags(Index: Integer; const Flags: TPdfFormFieldFlags);

IndexInteger. O índice de anotação baseado em 0 do campo de formulário na página atual. Deve estar no intervalo de 0 a AnnotationCount - 1
FlagsTPdfFormFieldFlags. Um conjunto de valores de TPdfFormFieldFlag a aplicar ao campo. Eles correspondem às flags de campo AcroForm definidas na especificação PDF, como somente leitura, obrigatório ou sem exportação

Description

SetFormFieldFlags grava flags de campo AcroForm na anotação de widget de formulário no índice de anotação baseado em 0 fornecido, na página atual. As flags controlam o comportamento interativo do campo: por exemplo, marcá-lo como somente leitura impede que o usuário altere seu valor, enquanto marcá-lo como obrigatório sinaliza que ele deve ser preenchido antes que o formulário possa ser enviado

O parâmetro Index refere-se ao índice de anotação relatado por AnnotationCount, não ao índice de campo de formulário relatado por FormFieldCount. Use FormFieldInfo ou HasFormFieldAt para identificar quais índices de anotação correspondem a widgets de formulário. Para endereçar um campo por coordenadas de página em vez de índice, use SetFormFieldFlagsAt

Alterações de flags têm efeito imediato no documento em memória, mas não são persistidas até que SaveAs seja chamado. Ao travar programaticamente um formulário após preenchê-lo, a sequência recomendada é: atribuir valores de FormField[], chamar GenerateFormAppearances, definir as flags como somente leitura e então chamar SaveAs

Example

var
  I: Integer;
begin
  Pdf1.PageIndex := 0;
  // Mark every form field on the page as read-only
  for I := 0 to Pdf1.AnnotationCount - 1 do
    if Pdf1.FormFieldInfo[I].FieldType <> fftUnknown then
      Pdf1.SetFormFieldFlags(I, [ffReadOnly]);
  Pdf1.SaveAs('output_readonly.pdf');
end;

See Also

FormField, FormFieldCount, FormFieldInfo, SetFormFieldFlagsAt, HasFormFieldAt