PDFium Delphi Component Docs

Lebenszyklusaktionen

Komponente: TPdf  ·  Unit: PDFium
Steuert, wann Lebenszyklusaktionen von PDF-Dokumenten und -Seiten ausgeführt werden, einschließlich expliziter Speicher- und Druckgrenzen

Typen

TPdfLifecycleActionPolicy = (lapDisabled, lapManual, lapAutomatic);

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

TPdfPageLifecycleAction = (plaOpen, plaClose);

Ausführungsrichtlinie

property LifecycleActionPolicy: TPdfLifecycleActionPolicy; // default lapAutomatic

lapDisabled blockiert sowohl die automatische als auch die explizite Ausführung von Lebenszyklusaktionen

lapManual unterdrückt automatische Aktionen und erlaubt dabei die beiden expliziten Ausführungsmethoden

lapAutomatic behält das kompatible automatische Verhalten für Dokument-JavaScript, Öffnen und Schließen des Dokuments sowie Öffnen und Schließen von Seiten bei und erlaubt weiterhin die explizite Ausführung

Der automatische Modus umschließt keine Speicher- oder Druckoperationen, da interne Snapshots und Konvertierungsspeicherungen nicht unerwartet Dokumentskripte ausführen dürfen; rufen Sie die explizite Dokumentmethode an den vom Host gesteuerten Workflow-Grenzen auf

Dokumentaktionen

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

dlaJavaScript führt JavaScript-Aktionen aus dem Name-Tree auf Dokumentebene aus und dlaOpen führt die OpenAction des Katalogs aus

dlaWillClose, dlaWillSave, dlaDidSave, dlaWillPrint und dlaDidPrint leiten die entsprechende zusätzliche Dokumentaktion weiter

Die Methode liefert False mit einer nicht leeren ErrorMessage zurück, wenn die Richtlinie die Ausführung blockiert, die Formularausfüll-Umgebung nicht verfügbar ist oder ein Callback eine Ausnahme auslöst

Seitenaktionen

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

PageNumber ist einsbasiert und muss eine Seite im aktiven Dokument bezeichnen

Die aktuelle Seite verwendet ihr geladenes natives Handle erneut; eine andere Seite wird temporär geöffnet, bei der Formularumgebung registriert, ausgelöst, abgemeldet und geschlossen, ohne TPdf.PageNumber zu verändern

Fehler beim Laden, Registrieren, Ausführen, Aufräumen und Schließen werden isoliert im Rückgabewert und in ErrorMessage gemeldet

Speicher-Workflow-Beispiel

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;

Sicherheit

Lebenszyklusaktionen können Dokument-JavaScript, benannte Aktionen, URI-Callbacks und andere auf TPdf konfigurierte Host-Dienste aufrufen

Verwenden Sie lapDisabled für nicht vertrauenswürdige Dokumente, die niemals Aktionen ausführen dürfen, oder lapManual, wenn die Anwendung eine explizite Freigabegrenze benötigt

Siehe auch

Formular-Host-Callbacks, JavaScriptActions, PerformNamedAction