PDFium Delphi Component Docs

Método GenerateFormAppearances

Componente: TPdf  ·  Unidad: PDFium
Regenera el /AP (flujo de apariencia) de los widgets de formulario de todas las páginas mediante FPDF_FFLDraw; es la llamada complementaria recomendada tras asignar FormField[i] := value y antes de SaveAs / FlattenPage / FlattenAllPages, para que los valores no dependan del foco del editor ni se pierdan al aplanar

Sintaxis

procedure GenerateFormAppearances;

Descripción

GenerateFormAppearances reconstruye las apariencias de texto editable y listas combinadas mediante el editor nativo de formularios, y sincroniza los estados de apariencia de casillas y botones de opción

Las asignaciones nativas de texto y listas combinadas confirman su apariencia mediante el editor de formularios; los cambios directos al diccionario y las apariencias inicialmente ausentes todavía pueden requerir esta regeneración antes de aplanar, ya que el aplanado usa los flujos de apariencia almacenados y no la visualización del editor activo

El flujo de trabajo correcto al llenar y bloquear un formulario es: asigne todos los valores de FormField[] → llame una vez a GenerateFormAppearances → llame opcionalmente a FlattenPage / FlattenAllPages → llame a SaveAs. Si solo necesita guardar el formulario lleno sin aplanar, GenerateFormAppearances sigue siendo recomendable para garantizar la máxima compatibilidad con visores PDF de terceros

El procedimiento opera sobre todo el documento en una sola llamada; no existe una variante por página

Ejemplo

begin
  // Assign form field values
  Pdf1.FormField[0] := 'Alice Example';
  Pdf1.FormField[1] := '[email protected]';
  Pdf1.FormField[2] := '2026-05-20';
  
  // Bake appearance streams so values are visible in all viewers
  Pdf1.GenerateFormAppearances;
  
  // Flatten and save a non-editable copy
  Pdf1.FlattenAllPages;
  Pdf1.SaveAs('output_filled_flat.pdf');
end;

Los widgets con valores heredados usan una edición nativa temporal seguida de una restauración verificada del valor original del campo padre; no se escribe un valor que lo oculte en el widget

Los campos heredados de solo lectura no pueden usar este flujo de edición y generan un error; GenerateFormAppearances no es una operación transaccional sobre el documento

Ver también

FlattenPage, FlattenAllPages, FormField, SaveAs