function FlattenPage(nFlag: Integer = FLAT_NORMALDISPLAY): Integer;
| nFlag | Integer. Sélectionne le profil d’aplatissement. Passez FLAT_NORMALDISPLAY (0, par défaut) pour optimiser la sortie pour l’affichage à l’écran, ou FLAT_PRINT (1) pour optimiser la sortie imprimée |
FLATTEN_SUCCESS (1) — les annotations ont été fusionnées avec succès dans le contenu de la page ; FLATTEN_NOTHINGTODO (2) — la page n’avait aucune annotation ni widget à aplatir ; FLATTEN_FAIL (0) — l’opération a échouéFlattenPage fusionne toutes les annotations et les widgets AcroForm de la page courante dans le flux de contenu de page permanent et non modifiable. Une fois aplaties, les annotations ne sont plus interactives — elles deviennent de simples graphiques qui ne peuvent pas être modifiés, supprimés ni envoyés. C’est la technique standard pour produire un PDF "verrouillé" qui préserve l’apparence visuelle d’un formulaire rempli ou d’un document annoté
Le paramètre nFlag sélectionne le profil de rendu utilisé lors du dessin des widgets dans le contenu de la page. Utilisez FLAT_NORMALDISPLAY (0) pour les documents qui seront consultés à l’écran, et FLAT_PRINT (1) pour les documents destinés à l’impression
Lorsque la page contient des champs de formulaire remplis, vous devez appeler GenerateFormAppearances avant FlattenPage. Sans flux d’apparence, l’aplatisseur n’a aucune représentation visuelle à fusionner et omettra silencieusement les valeurs des champs de la sortie. La séquence recommandée pour une seule page est : affectez les valeurs FormField[] → GenerateFormAppearances → FlattenPage → SaveAs
Pour aplatir chaque page d’un document en un seul appel, utilisez FlattenAllPages. Comparez la valeur de retour à FLATTEN_FAIL pour détecter les erreurs ; FLATTEN_NOTHINGTODO n’est pas une condition d’erreur
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;