PDFium Delphi Component Docs

Ações de ciclo de vida

Componente: TPdf  ·  Unidade: PDFium
Controla quando as ações de ciclo de vida de documentos e páginas PDF são executadas, incluindo limites explícitos de gravação e impressão

Types

TPdfLifecycleActionPolicy = (lapDisabled, lapManual, lapAutomatic);

TPdfDocumentLifecycleAction = (dlaJavaScript, dlaOpen, dlaWillClose, dlaWillSave, dlaDidSave, dlaWillPrint, dlaDidPrint);

TPdfPageLifecycleAction = (plaOpen, plaClose);

Execution policy

property LifecycleActionPolicy: TPdfLifecycleActionPolicy; // default lapAutomatic

lapDisabled bloqueia a execução de ações de ciclo de vida, tanto automáticas como explícitas

lapManual suprime as ações automáticas mas permite os dois métodos de execução explícita

lapAutomatic mantém o comportamento automático compatível de JavaScript de documento, de abertura e fecho de documento e de abertura e fecho de página, continuando a permitir a execução explícita

O modo automático não envolve operações de gravação ou impressão porque as capturas internas e as gravações de conversão não devem executar scripts de documento de forma inesperada; chame o método explícito de documento nos limites do fluxo de trabalho controlados pelo anfitrião

Document actions

function ExecuteDocumentLifecycleAction(Action: TPdfDocumentLifecycleAction; out ErrorMessage: string): Boolean;

dlaJavaScript executa as ações da árvore de nomes JavaScript ao nível do documento e dlaOpen executa a ação de abertura do catálogo

dlaWillClose, dlaWillSave, dlaDidSave, dlaWillPrint e dlaDidPrint distribuem a ação adicional de documento correspondente

O método devolve False com um ErrorMessage não vazio quando a política bloqueia a execução, o ambiente de preenchimento de formulários não está disponível ou um callback gera uma exceção

Page actions

function ExecutePageLifecycleAction(PageNumber: Integer; Action: TPdfPageLifecycleAction; out ErrorMessage: string): Boolean;

PageNumber usa numeração a partir de 1 e tem de identificar uma página do documento ativo

A página atual reutiliza o handle nativo já carregado; outra página é aberta temporariamente, registada no ambiente de formulários, alvo da distribuição da ação, retirada do registo e fechada sem alterar TPdf.PageNumber

As falhas de carregamento, registo, ação, limpeza e fecho são isoladas no valor de retorno e em ErrorMessage

Save workflow example

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;

Security

As ações de ciclo de vida podem invocar JavaScript de documento, ações nomeadas, callbacks de URI e outros serviços do anfitrião configurados no TPdf

Use lapDisabled em documentos não fidedignos que nunca devem executar ações, ou lapManual quando a aplicação precisa de um limite de aprovação explícito

See Also

Callbacks do anfitrião de formulários, JavaScriptActions, PerformNamedAction