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 de página permanente (no editable). nFlag selecciona el perfil de aplanado: FLAT_NORMALDISPLAY (0) para pantalla o FLAT_PRINT (1) para impresión. Devuelve uno de FLATTEN_SUCCESS, FLATTEN_NOTHINGTODO o FLATTEN_FAIL. Llame primero a GenerateFormAppearances cuando aplane valores de formulario 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

One of three integer constants: 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 ya no son interactivas — se convierten en gráficos ordinarios que no se pueden editar, eliminar ni enviar. Es la técnica estándar para producir un PDF "bloqueado" que conserva la apariencia visual de un formulario rellenado o un documento anotado

El parámetro nFlag selecciona el perfil de renderizado usado 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 imprimirse

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

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

Example

var
  Res: Integer;
begin
  Pdf1.PageIndex := 0;
  // Rellenar un campo de formulario, regenerar apariencias y luego aplanar
  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