TPdfLifecycleActionPolicy = (lapDisabled, lapManual, lapAutomatic);
TPdfDocumentLifecycleAction = (dlaJavaScript, dlaOpen, dlaWillClose, dlaWillSave, dlaDidSave, dlaWillPrint, dlaDidPrint);
TPdfPageLifecycleAction = (plaOpen, plaClose);
property LifecycleActionPolicy: TPdfLifecycleActionPolicy; // default lapAutomatic
lapDisabled blokuje zarówno automatyczne, jak i jawne wykonywanie akcji cyklu życia
lapManual wycisza akcje automatyczne, pozwalając na dwa jawne sposoby wykonania
lapAutomatic zachowuje kompatybilne automatyczne zachowanie: JavaScript dokumentu, otwarcie i zamknięcie dokumentu oraz otwarcie i zamknięcie strony, przy jednoczesnej możliwości jawnego wykonania
Tryb automatyczny nie opakowuje operacji zapisu ani drukowania, ponieważ wewnętrzne snapshoty i zapisy konwersji nie mogą nieoczekiwanie uruchamiać skryptów dokumentu; jawną metodę dokumentową wywołuj w granicach przepływu pracy kontrolowanych przez hosta
function ExecuteDocumentLifecycleAction(Action: TPdfDocumentLifecycleAction; out ErrorMessage: string): Boolean;
dlaJavaScript uruchamia akcje dokumentowego drzewa nazw, a dlaOpen uruchamia akcję otwarcia z katalogu
dlaWillClose, dlaWillSave, dlaDidSave, dlaWillPrint i dlaDidPrint wywołują odpowiednią akcję dodatkową dokumentu
Metoda zwraca False z niepustym ErrorMessage, gdy polityka blokuje wykonanie, środowisko wypełniania formularzy jest niedostępne albo wywołanie zwrotne zgłosi wyjątek
function ExecutePageLifecycleAction(PageNumber: Integer; Action: TPdfPageLifecycleAction; out ErrorMessage: string): Boolean;
PageNumber jest liczone od 1 i musi wskazywać stronę aktywnego dokumentu
Bieżąca strona ponownie używa swojego wczytanego natywnego uchwytu; inna strona jest otwierana tymczasowo, rejestrowana w środowisku formularzy, obsługiwana, wyrejestrowywana i zamykana bez zmiany TPdf.PageNumber
Niepowodzenia ładowania, rejestracji, akcji, czyszczenia i zamykania są izolowane w wartości zwracanej i 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;
Akcje cyklu życia mogą wywoływać JavaScript dokumentu, akcje nazwane, wywołania zwrotne URI i inne usługi hosta skonfigurowane na TPdf
Dla niezaufanych dokumentów, które nigdy nie mogą wykonywać akcji, używaj lapDisabled, a gdy aplikacja potrzebuje jawnej granicy zatwierdzania — lapManual