TPdfLifecycleActionPolicy = (lapDisabled, lapManual, lapAutomatic);
TPdfDocumentLifecycleAction = (dlaJavaScript, dlaOpen, dlaWillClose, dlaWillSave, dlaDidSave, dlaWillPrint, dlaDidPrint);
TPdfPageLifecycleAction = (plaOpen, plaClose);
property LifecycleActionPolicy: TPdfLifecycleActionPolicy; // default lapAutomatic
lapDisabled blockiert sowohl die automatische als auch die explizite Ausführung von Lebenszyklusaktionen
lapManual unterdrückt automatische Aktionen und erlaubt dabei die beiden expliziten Ausführungsmethoden
lapAutomatic behält das kompatible automatische Verhalten für Dokument-JavaScript, Öffnen und Schließen des Dokuments sowie Öffnen und Schließen von Seiten bei und erlaubt weiterhin die explizite Ausführung
Der automatische Modus umschließt keine Speicher- oder Druckoperationen, da interne Snapshots und Konvertierungsspeicherungen nicht unerwartet Dokumentskripte ausführen dürfen; rufen Sie die explizite Dokumentmethode an den vom Host gesteuerten Workflow-Grenzen auf
function ExecuteDocumentLifecycleAction(Action: TPdfDocumentLifecycleAction; out ErrorMessage: string): Boolean;
dlaJavaScript führt JavaScript-Aktionen aus dem Name-Tree auf Dokumentebene aus und dlaOpen führt die OpenAction des Katalogs aus
dlaWillClose, dlaWillSave, dlaDidSave, dlaWillPrint und dlaDidPrint leiten die entsprechende zusätzliche Dokumentaktion weiter
Die Methode liefert False mit einer nicht leeren ErrorMessage zurück, wenn die Richtlinie die Ausführung blockiert, die Formularausfüll-Umgebung nicht verfügbar ist oder ein Callback eine Ausnahme auslöst
function ExecutePageLifecycleAction(PageNumber: Integer; Action: TPdfPageLifecycleAction; out ErrorMessage: string): Boolean;
PageNumber ist einsbasiert und muss eine Seite im aktiven Dokument bezeichnen
Die aktuelle Seite verwendet ihr geladenes natives Handle erneut; eine andere Seite wird temporär geöffnet, bei der Formularumgebung registriert, ausgelöst, abgemeldet und geschlossen, ohne TPdf.PageNumber zu verändern
Fehler beim Laden, Registrieren, Ausführen, Aufräumen und Schließen werden isoliert im Rückgabewert und in ErrorMessage gemeldet
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;
Lebenszyklusaktionen können Dokument-JavaScript, benannte Aktionen, URI-Callbacks und andere auf TPdf konfigurierte Host-Dienste aufrufen
Verwenden Sie lapDisabled für nicht vertrauenswürdige Dokumente, die niemals Aktionen ausführen dürfen, oder lapManual, wenn die Anwendung eine explizite Freigabegrenze benötigt