TPdfLifecycleActionPolicy = (lapDisabled, lapManual, lapAutomatic);
TPdfDocumentLifecycleAction = (dlaJavaScript, dlaOpen, dlaWillClose, dlaWillSave, dlaDidSave, dlaWillPrint, dlaDidPrint);
TPdfPageLifecycleAction = (plaOpen, plaClose);
property LifecycleActionPolicy: TPdfLifecycleActionPolicy; // default lapAutomatic
lapDisabled blokuje automatické i explicitní provádění akcí životního cyklu
lapManual potlačí automatické akce a zároveň ponechá obě explicitní prováděcí metody
lapAutomatic zachová kompatibilní automatické chování dokumentového JavaScriptu, otevření a zavření dokumentu a otevření a zavření stránky a stále umožní explicitní spuštění
Automatický režim neobaluje operace uložení ani tisku, protože interní snapshoty a konverzní ukládání nesmí nečekaně spustit dokumentové skripty; explicitní dokumentovou metodu zavolejte na hranicích workflow řízených hostitelem
function ExecuteDocumentLifecycleAction(Action: TPdfDocumentLifecycleAction; out ErrorMessage: string): Boolean;
dlaJavaScript spustí akce JavaScriptu z name-tree na úrovni dokumentu a dlaOpen spustí open akci katalogu
dlaWillClose, dlaWillSave, dlaDidSave, dlaWillPrint a dlaDidPrint rozešlou odpovídající dodatečnou akci dokumentu
Metoda vrátí False s neprázdným ErrorMessage, když politika blokuje provádění, prostředí pro plnění formulářů není dostupné, nebo zpětné volání vyvolá výjimku
function ExecutePageLifecycleAction(PageNumber: Integer; Action: TPdfPageLifecycleAction; out ErrorMessage: string): Boolean;
PageNumber je indexované od jedničky a musí identifikovat stránku v aktivním dokumentu
Aktuální stránka znovu použije svůj načtený nativní handle; jiná stránka se dočasně otevře, zaregistruje ve formulářovém prostředí, rozešle, odregistruje a zavře beze změny TPdf.PageNumber
Selhání načtení, registrace, akce, úklidu a zavření se izolují do návratové hodnoty a 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;
Akce životního cyklu můžou vyvolat dokumentový JavaScript, pojmenované akce, URI zpětná volání a další služby hostitele nakonfigurované na TPdf
Pro nedůvěryhodné dokumenty, které nesmí nikdy provést žádnou akci, použijte lapDisabled; lapManual poslouží, když aplikace potřebuje explicitní hranici schválení