PDFium Delphi Component Docs

Azioni del ciclo di vita

Componente: TPdf  ·  Unità: PDFium
Controlla quando si eseguono le azioni del ciclo di vita del documento e delle pagine PDF, inclusi confini espliciti di salvataggio e stampa

Types

TPdfLifecycleActionPolicy = (lapDisabled, lapManual, lapAutomatic);

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

TPdfPageLifecycleAction = (plaOpen, plaClose);

Execution policy

property LifecycleActionPolicy: TPdfLifecycleActionPolicy; // default lapAutomatic

lapDisabled blocca l'esecuzione delle azioni del ciclo di vita sia automatica sia esplicita

lapManual inibisce le azioni automatiche consentendo però i due metodi di esecuzione espliciti

lapAutomatic conserva il comportamento automatico compatibile del JavaScript del documento, dell'apertura e chiusura del documento e dell'apertura e chiusura delle pagine, consentendo comunque l'esecuzione esplicita

La modalità automatica non avvolge le operazioni di salvataggio o stampa perché gli snapshot interni e i salvataggi di conversione non devono eseguire inaspettatamente script del documento; chiamare il metodo esplicito del documento nei confini del flusso di lavoro controllati dall'host

Document actions

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

dlaJavaScript esegue le azioni dell'albero dei nomi JavaScript a livello di documento e dlaOpen esegue l'azione di apertura del catalog

dlaWillClose, dlaWillSave, dlaDidSave, dlaWillPrint e dlaDidPrint inviano la corrispondente azione aggiuntiva del documento

Il metodo restituisce False con un ErrorMessage non vuoto quando i criteri bloccano l'esecuzione, l'ambiente di compilazione dei moduli non è disponibile o una callback solleva un'eccezione

Page actions

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

PageNumber è in base uno e deve identificare una pagina del documento attivo

La pagina corrente riutilizza il proprio handle nativo caricato; un'altra pagina viene aperta temporaneamente, registrata nell'ambiente dei moduli, inviata, deregistrata e chiusa senza modificare TPdf.PageNumber

I fallimenti di caricamento, registrazione, azione, pulizia e chiusura vengono isolati nel valore restituito e in 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

Le azioni del ciclo di vita possono invocare JavaScript del documento, azioni nominate, callback URI e altri servizi host configurati su TPdf

Usare lapDisabled per i documenti non attendibili che non devono mai eseguire azioni, oppure lapManual quando l'applicazione necessita di un confine di approvazione esplicito

See Also

Callback host dei moduli, JavaScriptActions, PerformNamedAction