PDFium Delphi Component Docs

SetFormFieldFlags Método

Componente: TPdf  ·  Unidad: PDFium
Define flags de campo AcroForm para el campo de formulario en el índice de anotación especificado de la página actual

Syntax

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

IndexInteger. El índice de anotación, basado en cero, del campo de formulario en la página actual. Debe estar en el rango de 0 a AnnotationCount - 1
FlagsTPdfFormFieldFlags. Un conjunto de valores TPdfFormFieldFlag que se aplican al campo. Corresponden a los flags de campo de AcroForm definidos en la especificación PDF, como solo lectura, obligatorio o no exportable

Description

SetFormFieldFlags escribe los flags de campo de AcroForm en la anotación de widget de formulario situada en el índice de anotación, basado en cero, indicado de la página actual. Los flags controlan el comportamiento interactivo del campo: p. ej., marcarlo como solo lectura impide que el usuario cambie su valor, mientras que marcarlo como obligatorio indica que debe completarse antes de poder enviar el formulario

El parámetro Index se refiere al índice de anotación que informa AnnotationCount, no al índice de campo de formulario que informa FormFieldCount. Use FormFieldInfo o HasFormFieldAt para identificar qué índices de anotación corresponden a widgets de formulario. Para dirigirse a un campo por coordenadas de página en lugar de por índice, use SetFormFieldFlagsAt

Los cambios de flags surten efecto de inmediato en el documento en memoria, pero no se persisten hasta que se llama a SaveAs. Al bloquear un formulario por código después de completarlo, la secuencia recomendada es: asignar los valores de FormField[], llamar a GenerateFormAppearances, poner los flags en solo lectura y luego llamar a 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