property PageObjectEditTransactionStatus: TPdfPageObjectEditTransactionStatus; // read only
type TPdfPageObjectEditTransactionStatus = record
Active: Boolean;
Dirty: Boolean;
PageNumber: Integer;
MutationCount: Integer;
ContentGenerationCount: Integer;
end;
| Active | True zwischen BeginPageObjectEditTransaction und dem zugehörigen Commit oder Rollback |
| Dirty | True, sobald mindestens eine Mutation innerhalb der Transaktion ausgeführt wurde |
| PageNumber | 1-basierte Seite, an die die Transaktion beim Start gebunden wurde |
| MutationCount | Innerhalb der Transaktion erfasste erfolgreiche UpdatePage-Aufrufe |
| ContentGenerationCount | Inhaltsgenerierungen, die beim Commiten veränderter Transaktionen ausgeführt wurden |
Eine Seitenobjekt-Bearbeitungstransaktion schiebt die native Inhaltsgenerierung auf, damit Seitenobjekt-Mutationen zum Einfügen, Entfernen, Transformieren, für Eigenschaften, Inhaltsmarken und Anmerkungsdarstellungen als eine atomare, seitenbezogene Operation wirken. Diese Eigenschaft legt ihren Live-Zustand für Schutzprüfungen und Diagnosen offen
MutationCount steigt mit jeder erfolgreichen aufgeschobenen Mutation, und jede solche Mutation entwertet auch die Seitencaches, sodass keine veraltete Darstellung, kein veralteter Snapshot und kein veraltetes Vorschaubild die Bearbeitung überlebt
Das Commiten einer veränderten Transaktion generiert den Seiteninhalt einmal neu und erhöht ContentGenerationCount. Das Commiten einer No-op-Transaktion oder ein Rollback stellt die Basis ohne Generierung wieder her
Commit und Rollback löschen Active und Dirty, belassen PageNumber und beide Zähler aber als abschließende Diagnosewerte, bis die nächste Transaktion beginnt und sie zurücksetzt
Außerhalb einer Transaktion enthält jedes Feld seinen Standardwert, daher ist Active = False der verlässliche Test auf Leerlauf
Der Status deckt nur Seitenobjekt-Transaktionen ab; dokumentweite Transaktionen, die mit BeginEditTransaction geöffnet werden, meldet das Bearbeitungsjournal
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;