PDFium Delphi Component Docs

FlattenPage Méthode

Composant: TPdf  ·  Unit: PDFium
Aplatie les annotations et les widgets de formulaire de la page courante en contenu de page permanent (non modifiable). nFlag sélectionne le profil d’aplatissement: FLAT_NORMALDISPLAY (0) pour l’affichage à l’écran ou FLAT_PRINT (1) pour la sortie imprimée. Renvoie FLATTEN_SUCCESS, FLATTEN_NOTHINGTODO ou FLATTEN_FAIL. Appelez d’abord GenerateFormAppearances lors de l’aplatissement de valeurs de formulaire renseignées

Syntax

function FlattenPage(nFlag: Integer = FLAT_NORMALDISPLAY): Integer;

nFlagInteger. 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

Return Value

L’une des trois constantes entières : 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é

Description

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

Example

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;

See Also

FlattenAllPages, GenerateFormAppearances, SaveAs, Annotation