function FlattenPage(nFlag: Integer = FLAT_NORMALDISPLAY): Integer;
| nFlag | Integer. 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 |
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ó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
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;