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 del 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 JavaScript automático de documentos compatible, la apertura y el cierre de documentos y la apertura y el cierre de páginas, al tiempo que 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 forma inesperada; llame al método de documento explícito 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 distribuyen 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 lanza una excepción
function ExecutePageLifecycleAction(PageNumber: Integer; Action: TPdfPageLifecycleAction; out ErrorMessage: string): Boolean;
PageNumber está basado en uno y debe identificar una página del documento activo
La página actual reutiliza su manejador nativo cargado; otra página se abre temporalmente, se registra en el entorno de formularios, se distribuye, 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 del ciclo de vida pueden invocar JavaScript de documento, acciones con nombre, devoluciones de llamada URI y otros servicios del host configurados en TPdf
Use lapDisabled para documentos que no son de confianza y que nunca deben ejecutar acciones, o lapManual cuando la aplicación necesita un límite de aprobación explícito