PDFium Delphi Component Docs

PageObjectEditTransactionStatus Eigenschaft

Komponente: TPdf  ·  Unit: PDFium
Meldet, ob eine Seitenobjekt-Bearbeitungstransaktion aktiv ist und wie weit sie fortgeschritten ist

Syntax

property PageObjectEditTransactionStatus: TPdfPageObjectEditTransactionStatus; // read only

 

type TPdfPageObjectEditTransactionStatus = record
  Active: Boolean;
  Dirty: Boolean;
  PageNumber: Integer;
  MutationCount: Integer;
  ContentGenerationCount: Integer;
end;

ActiveTrue zwischen BeginPageObjectEditTransaction und dem zugehörigen Commit oder Rollback
DirtyTrue, sobald mindestens eine Mutation innerhalb der Transaktion ausgeführt wurde
PageNumber1-basierte Seite, an die die Transaktion beim Start gebunden wurde
MutationCountInnerhalb der Transaktion erfasste erfolgreiche UpdatePage-Aufrufe
ContentGenerationCountInhaltsgenerierungen, die beim Commiten veränderter Transaktionen ausgeführt wurden

Beschreibung

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

Hinweise

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

Beispiel

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;

Siehe auch

PageObjectEditTransaction, BeginEditTransaction, CommitEditTransaction, RollbackEditTransaction, UpdatePageObject