PDFium Delphi Component Docs

ライフサイクルアクション

コンポーネント: TPdf  ·  ユニット: PDFium
明示的な保存と印刷の境界を含め、PDF のドキュメントおよびページのライフサイクルアクションがいつ実行されるかを制御します

型

TPdfLifecycleActionPolicy = (lapDisabled, lapManual, lapAutomatic);

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

TPdfPageLifecycleAction = (plaOpen, plaClose);

実行ポリシー

property LifecycleActionPolicy: TPdfLifecycleActionPolicy; // default lapAutomatic

lapDisabled は、自動と明示的の両方のライフサイクルアクション実行を阻止します

lapManual は自動アクションを抑制しつつ、2 つの明示的実行メソッドを許可します

lapAutomatic は、互換性のある自動のドキュメント JavaScript、ドキュメントのオープンとクローズ、ページのオープンとクローズの動作を保持しつつ、明示的な実行も許可します

自動モードは保存や印刷の操作をラップしません。内部スナップショットや変換保存が予期せずドキュメントスクリプトを実行してはならないためです。ホストが管理するワークフロー境界で、明示的なドキュメントメソッドを呼び出してください

ドキュメントアクション

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

dlaJavaScript はドキュメントレベルの JavaScript 名前ツリーアクションを実行し、dlaOpen はカタログのオープンアクションを実行します

dlaWillClose、dlaWillSave、dlaDidSave、dlaWillPrint、dlaDidPrint は、対応するドキュメント追加アクションをディスパッチします

ポリシーが実行を阻止した場合、フォーム入力環境が利用できない場合、またはコールバックが例外を発生させた場合、このメソッドは空でない ErrorMessage とともに False を返します

ページアクション

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

PageNumber は 1 始まりであり、アクティブなドキュメント内のページを指していなければなりません

現在のページは読み込み済みのネイティブハンドルを再利用します。別のページは一時的に開かれ、フォーム環境に登録され、ディスパッチされ、登録解除され、TPdf.PageNumber を変更せずに閉じられます

読み込み、登録、アクション、クリーンアップ、クローズの失敗は、戻り値と 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;

セキュリティ

ライフサイクルアクションは、ドキュメント JavaScript、名前付きアクション、URI コールバック、および TPdf に設定されたその他のホストサービスを呼び出せます

アクションを決して実行してはならない信頼できないドキュメントには lapDisabled を、アプリケーションが明示的な承認境界を必要とする場合は lapManual を使用してください

関連項目

フォームホストコールバック, JavaScriptActions, PerformNamedAction