TPdfLifecycleActionPolicy = (lapDisabled, lapManual, lapAutomatic);
TPdfDocumentLifecycleAction = (dlaJavaScript, dlaOpen, dlaWillClose, dlaWillSave, dlaDidSave, dlaWillPrint, dlaDidPrint);
TPdfPageLifecycleAction = (plaOpen, plaClose);
property LifecycleActionPolicy: TPdfLifecycleActionPolicy; // default lapAutomatic
lapDisabled bloquea la ejecución de acciones de ciclo de vida tanto automáticas como explícitas
lapManual suprime las acciones automáticas mientras permite los dos métodos de ejecución explícitos
lapAutomatic conserva el comportamiento automático compatible de JavaScript de documento, apertura y cierre de documento, y apertura y cierre de página, mientras sigue permitiendo la ejecución explícita
El modo automático no envuelve las operaciones de guardado ni de impresión porque las instantáneas internas y los guardados de conversión no deben ejecutar scripts de documento de manera inesperada; llame al método explícito de documento en los límites del flujo de trabajo controlados por el host
function ExecuteDocumentLifecycleAction(Action: TPdfDocumentLifecycleAction; out ErrorMessage: string): Boolean;
dlaJavaScript ejecuta las acciones del árbol de nombres de JavaScript a nivel de documento y dlaOpen ejecuta la acción de apertura del catálogo
dlaWillClose, dlaWillSave, dlaDidSave, dlaWillPrint y dlaDidPrint despachan la acción adicional de documento correspondiente
El método devuelve False con un ErrorMessage no vacío cuando la política bloquea la ejecución, el entorno de llenado de formularios no está disponible o una devolución de llamada genera una excepción
function ExecutePageLifecycleAction(PageNumber: Integer; Action: TPdfPageLifecycleAction; out ErrorMessage: string): Boolean;
PageNumber es basado en uno y debe identificar una página del documento activo
La página actual reutiliza su identificador nativo cargado; otra página se abre temporalmente, se registra en el entorno de formularios, se despacha, se anula su registro y se cierra sin cambiar TPdf.PageNumber
Los fallos de carga, registro, acción, limpieza y cierre se aíslan en el valor devuelto y 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;
Las acciones de ciclo de vida pueden invocar JavaScript de documento, acciones con nombre, devoluciones de llamada de URI y otros servicios del host configurados en TPdf
Use lapDisabled para documentos no confiables que nunca deben ejecutar acciones, o lapManual cuando la aplicación necesita un límite de aprobación explícito