function FlattenAllPages(nFlag: Integer = FLAT_NORMALDISPLAY): Boolean;
| nFlag | Integer. Seleciona o perfil de achatamento aplicado a todas as páginas. Passe FLAT_NORMALDISPLAY (0, padrão) para otimizar a visualização na tela, ou FLAT_PRINT (1) para otimizar a saída impressa. |
True se todas as páginas do documento retornaram FLATTEN_SUCCESS (1) ou FLATTEN_NOTHINGTODO (2); False se qualquer página retornou FLATTEN_FAIL (0).FlattenAllPages é um wrapper de conveniência que itera por todas as páginas do documento carregado e chama o equivalente a FlattenPage em cada uma. Anotações e widgets AcroForm de todas as páginas são mesclados em conteúdo de página permanente e não editável em uma única chamada.
O método retorna True apenas quando todas as páginas terminam com FLATTEN_SUCCESS ou FLATTEN_NOTHINGTODO. Uma única página retornando FLATTEN_FAIL faz o método retornar False, embora o achatamento continue para as páginas restantes.
Quando o documento contém campos de formulário preenchidos, sempre chame GenerateFormAppearances antes de FlattenAllPages. Sem appearance streams, os valores dos campos não aparecerão na saída achatada. O fluxo completo recomendado é: atribuir valores a FormField[] → GenerateFormAppearances → FlattenAllPages → SaveAs.
Para achatar uma única página e inspecionar seu código de resultado individual, use FlattenPage.
begin
// Fill fields, generate appearances, flatten entire document
Pdf1.FormField[0] := 'Jane Doe';
Pdf1.FormField[1] := '2026-05-20';
Pdf1.GenerateFormAppearances;
if Pdf1.FlattenAllPages(FLAT_NORMALDISPLAY) then
Pdf1.SaveAs('output_flat_all.pdf')
else
ShowMessage('One or more pages could not be flattened');
end;