PDFium Delphi Component Docs

Ações de ciclo de vida

Componente: TPdf  ·  Unidade: PDFium
Controla quando as ações de ciclo de vida de documento e de página do PDF são executadas, incluindo limites explícitos de salvamento 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 quanto explícitas

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

lapAutomatic mantém o comportamento compatível de JavaScript automático de documento, de abertura e fechamento de documento e de abertura e fechamento de página, ao mesmo tempo em que continua permitindo a execução explícita

O modo automático não envolve operações de salvamento ou de impressão porque snapshots internos e salvamentos de conversão não devem executar scripts de documento inesperadamente; chame o método explícito de documento nos limites do fluxo de trabalho controlados pelo host

Document actions

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

dlaJavaScript executa ações de name-tree de JavaScript de nível de documento e dlaOpen executa a ação de abertura do catálogo

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

O método retorna 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 dispara uma exceção

Page actions

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

PageNumber é baseado em um e deve identificar uma página no documento ativo

A página atual reutiliza seu handle nativo carregado; outra página é aberta temporariamente, registrada no ambiente de formulários, despachada, desregistrada e fechada sem alterar TPdf.PageNumber

Falhas de carregamento, registro, ação, limpeza e fechamento são isoladas no valor de retorno e no 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

Ações de ciclo de vida podem invocar JavaScript de documento, ações nomeadas, callbacks de URI e outros serviços de host configurados em TPdf

Use lapDisabled para documentos não confiáveis que nunca devem executar ações, ou lapManual quando o aplicativo precisa de um limite explícito de aprovação

See Also

Form host callbacks, JavaScriptActions, PerformNamedAction