PDFium Delphi Component Docs

FlattenPage método

Componente: TPdf  ·  Unidad: PDFium
Aplana las anotaciones y los widgets de formulario de la página actual en contenido permanente de página que no se puede editar. nFlag selecciona el perfil de aplanado: FLAT_NORMALDISPLAY (0) para visualización en pantalla o FLAT_PRINT (1) para salida impresa. Devuelve FLATTEN_SUCCESS, FLATTEN_NOTHINGTODO o FLATTEN_FAIL. Llama primero a GenerateFormAppearances al aplanar valores de formularios rellenados

Syntax

function FlattenPage(nFlag: Integer = FLAT_NORMALDISPLAY): Integer;

nFlagInteger. Selecciona el perfil de aplanado. Pase FLAT_NORMALDISPLAY (0, predeterminado) para optimizar la salida para visualización en pantalla, o FLAT_PRINT (1) para optimizar la salida impresa

Return Value

Una de tres constantes enteras: FLATTEN_SUCCESS (1) — las anotaciones se fusionaron correctamente con el contenido de la página; FLATTEN_NOTHINGTODO (2) — la página no tenía anotaciones ni widgets que aplanar; FLATTEN_FAIL (0) — la operación falló

Description

FlattenPage fusiona todas las anotaciones y widgets de AcroForm de la página actual en el flujo de contenido de página permanente y no editable. Una vez aplanadas, las anotaciones dejan de ser interactivas — se convierten en gráficos ordinarios que no se pueden editar, eliminar ni enviar. Esta es la técnica estándar para producir un PDF "bloqueado" que conserva la apariencia visual de un formulario rellenado o de un documento anotado

El parámetro nFlag selecciona el perfil de renderizado que se usa al dibujar los widgets en el contenido de la página. Use FLAT_NORMALDISPLAY (0) para documentos que se verán en pantalla, y FLAT_PRINT (1) para documentos destinados a impresión

Cuando la página contenga campos de formulario rellenados, debe llamar a GenerateFormAppearances antes de FlattenPage. Sin flujos de apariencia, el aplanador no tiene una representación visual que fusionar y omitirá silenciosamente los valores de los campos en la salida. La secuencia recomendada para una sola página es: asignar valores de FormField[] → GenerateFormAppearances → FlattenPage → SaveAs

Para aplanar todas las páginas de un documento en una sola llamada, use FlattenAllPages. Compare el valor devuelto con FLATTEN_FAIL para detectar errores; FLATTEN_NOTHINGTODO no es una condición de error

Example

var
  Res: Integer;
begin
  Pdf1.PageIndex := 0;
  // Fill a form field, regenerate appearances, then flatten
  Pdf1.FormField[0] := 'John Smith';
  Pdf1.GenerateFormAppearances;
  Res := Pdf1.FlattenPage(FLAT_NORMALDISPLAY);
  if Res = FLATTEN_FAIL then
    ShowMessage('Flatten failed')
  else
    Pdf1.SaveAs('output_flat.pdf');
end;

See Also

FlattenAllPages, GenerateFormAppearances, SaveAs, Annotation