function FlattenPage(nFlag: Integer = FLAT_NORMALDISPLAY): Integer;
| nFlag | Integer. Seleziona il profilo di flattening. Passa FLAT_NORMALDISPLAY (0, predefinito) per ottimizzare l'output per la visualizzazione su schermo, oppure FLAT_PRINT (1) per ottimizzare l'output stampato |
FLATTEN_SUCCESS (1) — le annotazioni sono state unite con successo nel contenuto della pagina; FLATTEN_NOTHINGTODO (2) — la pagina non aveva annotazioni o widget da appiattire; FLATTEN_FAIL (0) — l'operazione è fallita.FlattenPage unisce tutte le annotazioni e i widget AcroForm della pagina corrente nello stream di contenuto di pagina permanente e non modificabile. Una volta appiattite, le annotazioni non sono più interattive — diventano grafica ordinaria che non può essere modificata, eliminata o inviata. Questa è la tecnica standard per produrre un PDF "bloccato" che preserva l'aspetto visivo di un modulo compilato o di un documento annotato.
Il parametro nFlag seleziona il profilo di rendering usato quando si disegnano i widget nel contenuto della pagina. Usa FLAT_NORMALDISPLAY (0) per i documenti che saranno visualizzati a schermo, e FLAT_PRINT (1) per i documenti destinati alla stampa.
Quando la pagina contiene campi di modulo compilati, devi chiamare GenerateFormAppearances prima di FlattenPage. Senza gli stream di aspetto, l'appiattitore non ha alcuna rappresentazione visiva da unire e ometterà silenziosamente i valori dei campi dall'output. La sequenza consigliata per una singola pagina è: assegna i valori FormField[] → GenerateFormAppearances → FlattenPage → SaveAs.
Per appiattire ogni pagina di un documento con una singola chiamata, usa FlattenAllPages. Controlla il valore di ritorno rispetto a FLATTEN_FAIL per rilevare gli errori; FLATTEN_NOTHINGTODO non è una condizione di errore.
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;