property PageObjectEditTransactionStatus: TPdfPageObjectEditTransactionStatus; // read only
type TPdfPageObjectEditTransactionStatus = record
Active: Boolean;
Dirty: Boolean;
PageNumber: Integer;
MutationCount: Integer;
ContentGenerationCount: Integer;
end;
| Active | BeginPageObjectEditTransaction から対応するコミットまたはロールバックまでの間 True |
| Dirty | トランザクション内で少なくとも 1 つの変更が実行された後 True |
| PageNumber | トランザクションが開始されたときに結び付けられた 1 基点のページ |
| MutationCount | トランザクション内で記録された成功した UpdatePage 呼び出しの数 |
| ContentGenerationCount | 変更のあるトランザクションをコミットした際に実行されたコンテンツ生成の回数 |
ページオブジェクト編集トランザクションはネイティブのコンテンツ生成を延期するため、ページオブジェクトの挿入、削除、変換、プロパティ、コンテンツマーク、注釈外観の変更が 1 つのアトミックなページ単位操作として適用されます。このプロパティは、ガードや診断のためにそのライブ状態を公開します
MutationCount は成功した延期済み変更ごとに進み、そのような変更はどれもページキャッシュを無効化するため、古いレンダリング、スナップショット、サムネイルが編集をまたいで残ることはありません
変更のあるトランザクションをコミットするとページコンテンツが 1 回再生成され、ContentGenerationCount が進みます。何もしないトランザクションのコミットやロールバックは生成を行わずにベースラインを復元します
コミットとロールバックは Active と Dirty をクリアしますが、PageNumber と両カウンタは最終的な診断値として残り、次のトランザクションが開始されてリセットされるまで維持されます
トランザクションの外ではすべてのフィールドが既定値を保持するため、Active = False が確実なアイドル判定になります
このステータスはページオブジェクトトランザクションのみを対象とします。BeginEditTransaction で開かれる文書レベルのトランザクションは編集ジャーナルが報告します
Pdf.BeginPageObjectEditTransaction;
try
Pdf.TransformPageObject(0, Matrix);
Status := Pdf.PageObjectEditTransactionStatus;
LogTransactionProgress(Status.MutationCount, Status.Dirty);
Pdf.CommitPageObjectEditTransaction;
except
if Pdf.PageObjectEditTransactionStatus.Active then
Pdf.RollbackPageObjectEditTransaction;
raise;
end;