PDFium Delphi Component Docs

Méthode GenerateFormAppearances

Composant : TPdf  ·  Unité : PDFium
Régénère le /AP (flux d’apparence) pour chaque widget de formulaire sur chaque page en rendant chaque page via FPDF_FFLDraw. C’est l’appel compagnon recommandé pour les affectations FormField[i] := value — sans lui, les valeurs du formulaire peuvent n’être visibles que lorsque le champ a le focus, et toute opération de flatten ultérieure perdra silencieusement les valeurs. Appelez-le après toutes les affectations FormField[] et avant SaveAs / FlattenPage / FlattenAllPages

Syntaxe

procedure GenerateFormAppearances;

Description

GenerateFormAppearances reconstruit les apparences des textes et listes modifiables via l’éditeur natif de formulaire et synchronise celles des cases à cocher et boutons radio

Les affectations natives de texte et de liste modifiable valident leur apparence via l’éditeur ; les modifications brutes du dictionnaire et les apparences initialement absentes peuvent encore nécessiter cette régénération avant aplatissement, qui utilise les flux enregistrés plutôt que l’affichage de l’éditeur actif

Le flux de travail correct pour remplir puis verrouiller un formulaire est : affectez toutes les valeurs FormField[] → appelez GenerateFormAppearances une fois → appelez éventuellement FlattenPage / FlattenAllPages → appelez SaveAs. Si vous avez seulement besoin d’enregistrer le formulaire rempli sans aplatissement, GenerateFormAppearances reste recommandé pour garantir une compatibilité maximale avec les visionneuses PDF tierces

La procédure agit sur l’ensemble du document en un seul appel; il n’existe pas de variante par page

Exemple

begin
  // Assign form field values
  Pdf1.FormField[0] := 'Alice Example';
  Pdf1.FormField[1] := '[email protected]';
  Pdf1.FormField[2] := '2026-05-20';
  
  // Bake appearance streams so values are visible in all viewers
  Pdf1.GenerateFormAppearances;
  
  // Flatten and save a non-editable copy
  Pdf1.FlattenAllPages;
  Pdf1.SaveAs('output_filled_flat.pdf');
end;

Les widgets hérités passent par une modification native temporaire, puis une restauration vérifiée de la valeur du champ parent original ; aucune valeur masquée n’est écrite dans le widget

Les champs hérités en lecture seule ne peuvent pas suivre ce traitement et déclenchent une erreur ; GenerateFormAppearances n’est pas une opération transactionnelle de document

Voir aussi

FlattenPage, FlattenAllPages, FormField, SaveAs