TPdfLifecycleActionPolicy = (lapDisabled, lapManual, lapAutomatic);
TPdfDocumentLifecycleAction = (dlaJavaScript, dlaOpen, dlaWillClose, dlaWillSave, dlaDidSave, dlaWillPrint, dlaDidPrint);
TPdfPageLifecycleAction = (plaOpen, plaClose);
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
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
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
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;
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