PDFium Delphi Component Docs

Actions de cycle de vie

Composant: TPdf  ·  Unit: PDFium
Contrôle du moment où s’exécutent les actions de cycle de vie des documents et des pages PDF, y compris les frontières explicites d’enregistrement et d’impression

Types

TPdfLifecycleActionPolicy = (lapDisabled, lapManual, lapAutomatic);

TPdfDocumentLifecycleAction = (dlaJavaScript, dlaOpen, dlaWillClose, dlaWillSave, dlaDidSave, dlaWillPrint, dlaDidPrint);

TPdfPageLifecycleAction = (plaOpen, plaClose);

Politique d’exécution

property LifecycleActionPolicy: TPdfLifecycleActionPolicy; // default lapAutomatic

lapDisabled bloque l’exécution des actions de cycle de vie, automatique comme explicite

lapManual supprime les actions automatiques tout en autorisant les deux méthodes d’exécution explicites

lapAutomatic conserve le comportement automatique compatible — JavaScript de document, ouverture et fermeture de document, ouverture et fermeture de page — tout en continuant d’autoriser l’exécution explicite

Le mode automatique n’enrobe pas les opérations d’enregistrement ou d’impression car les instantanés internes et les enregistrements de conversion ne doivent pas exécuter involontairement des scripts de document ; appelez la méthode de document explicite aux frontières de flux de travail contrôlées par l’hôte

Actions de document

function ExecuteDocumentLifecycleAction(Action: TPdfDocumentLifecycleAction; out ErrorMessage: string): Boolean;

dlaJavaScript exécute les actions d’arborescence de noms JavaScript au niveau du document et dlaOpen exécute l’action d’ouverture du catalogue

dlaWillClose, dlaWillSave, dlaDidSave, dlaWillPrint et dlaDidPrint dispatchent l’action supplémentaire de document correspondante

La méthode renvoie False avec un ErrorMessage non vide lorsque la politique bloque l’exécution, que l’environnement de remplissage de formulaires est indisponible ou qu’un rappel lève une exception

Actions de page

function ExecutePageLifecycleAction(PageNumber: Integer; Action: TPdfPageLifecycleAction; out ErrorMessage: string): Boolean;

PageNumber est basé sur 1 et doit identifier une page du document actif

La page courante réutilise son handle natif chargé ; une autre page est ouverte temporairement, enregistrée auprès de l’environnement de formulaires, dispatchée, désenregistrée puis fermée sans modifier TPdf.PageNumber

Les échecs de chargement, d’enregistrement, d’action, de nettoyage et de fermeture sont isolés dans la valeur de retour et ErrorMessage

Exemple de flux de travail d’enregistrement

var
  ErrorMessage: string;
begin
  Pdf.LifecycleActionPolicy := lapManual;
  if not Pdf.ExecuteDocumentLifecycleAction(dlaWillSave, ErrorMessage) then
    raise Exception.Create(ErrorMessage);
  try
    Pdf.SaveAs(TargetFileName);
  finally
    Pdf.ExecuteDocumentLifecycleAction(dlaDidSave, ErrorMessage);
  end;
end;

Sécurité

Les actions de cycle de vie peuvent invoquer le JavaScript de document, les actions nommées, les rappels URI et d’autres services d’hôte configurés sur TPdf

Utilisez lapDisabled pour les documents non fiables qui ne doivent jamais exécuter d’actions, ou lapManual lorsque l’application a besoin d’une frontière d’approbation explicite

See Also

Rappels d’hôte de formulaires, JavaScriptActions, PerformNamedAction