TPdfLifecycleActionPolicy = (lapDisabled, lapManual, lapAutomatic);
TPdfDocumentLifecycleAction = (dlaJavaScript, dlaOpen, dlaWillClose, dlaWillSave, dlaDidSave, dlaWillPrint, dlaDidPrint);
TPdfPageLifecycleAction = (plaOpen, plaClose);
property LifecycleActionPolicy: TPdfLifecycleActionPolicy; // default lapAutomatic
lapDisabled blokkeert zowel automatische als expliciete uitvoering van lifecycleacties
lapManual onderdrukt automatische acties, maar staat de twee expliciete uitvoermethoden toe
lapAutomatic behoudt het compatibele automatische gedrag voor document-JavaScript, openen en sluiten van documenten en openen en sluiten van pagina's, en staat expliciete uitvoering eveneens toe
De automatische modus wikkelt save- of print-bewerkingen niet in, omdat interne momentopnamen en conversie-saves nooit onverwacht documentscripts mogen uitvoeren; roep de expliciete documentmethode aan op door de host bewaakte workflowgrenzen
function ExecuteDocumentLifecycleAction(Action: TPdfDocumentLifecycleAction; out ErrorMessage: string): Boolean;
dlaJavaScript voert JavaScript-acties uit de name tree op documentniveau uit en dlaOpen voert de open-actie van de catalog uit
dlaWillClose, dlaWillSave, dlaDidSave, dlaWillPrint en dlaDidPrint versturen de bijbehorende document additional action
De methode geeft False terug met een niet-lege ErrorMessage wanneer het beleid uitvoering blokkeert, de form fill-omgeving niet beschikbaar is of een callback een exceptie veroorzaakt
function ExecutePageLifecycleAction(PageNumber: Integer; Action: TPdfPageLifecycleAction; out ErrorMessage: string): Boolean;
PageNumber is 1-gebaseerd en moet een pagina in het actieve document aanduiden
De huidige pagina hergebruikt zijn geladen native handle; elke andere pagina wordt tijdelijk geopend, bij de formulieromgeving geregistreerd, afgehandeld, weer afgemeld en gesloten, zonder dat TPdf.PageNumber verandert
Fouten bij het laden, registreren, uitvoeren, opruimen en sluiten worden geïsoleerd in de retourwaarde en 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;
Lifecycleacties kunnen document-JavaScript, named actions, URI-callbacks en andere hostservices aanroepen die op TPdf zijn geconfigureerd
Gebruik lapDisabled voor niet-vertrouwde documenten die nooit acties mogen uitvoeren, of lapManual wanneer de toepassing een expliciete goedkeuringsgrens nodig heeft