PDFium Delphi Component Docs

Método GenerateFormAppearances

Componente: TPdf  ·  Unidad: PDFium
Regenera la entrada /AP (appearance stream) de cada widget de formulario en todas las páginas renderizando cada página mediante FPDF_FFLDraw. Esta es la llamada complementaria recomendada de las asignaciones FormField[i] := value: sin ella, los valores del formulario pueden verse solo cuando el campo tiene el foco, y cualquier operación posterior de aplanado perderá los valores sin avisar. Llama a este método después de todas las asignaciones FormField[] y antes de SaveAs / FlattenPage / FlattenAllPages

Sintaxis

procedure GenerateFormAppearances;

Descripción

GenerateFormAppearances reconstruye las apariencias editables de texto y cuadros combinados 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 cuadros combinados confirman su apariencia mediante el editor de formularios; las modificaciones directas de diccionario y las apariencias inicialmente ausentes pueden requerir esta regeneración antes de aplanar, porque el aplanado usa los flujos de apariencia guardados y no la presentación del editor activo

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

El procedimiento opera sobre todo el documento en una llamada; no hay 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 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 admiten este flujo de edición y lanzan un error; GenerateFormAppearances no es una operación transaccional de documento

Véase también

FlattenPage, FlattenAllPages, FormField, SaveAs