PDFium Delphi Component Docs

PageObjectEditTransactionStatus proprietate

Component: TPdf  ·  Unit: PDFium
Raportează dacă o tranzacție de editare a obiectelor de pagină este activă și cât de departe a ajuns

Syntax

property PageObjectEditTransactionStatus: TPdfPageObjectEditTransactionStatus; // read only

 

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

ActiveTrue între BeginPageObjectEditTransaction și commit-ul sau rollback-ul corespunzător
DirtyTrue de îndată ce cel puțin o mutație a rulat în interiorul tranzacției
PageNumberPagina cu numerotare de la unu la care tranzacția a fost legată la început
MutationCountApelările UpdatePage reușite înregistrate în interiorul tranzacției
ContentGenerationCountGenerările de conținut efectuate la commit-ul tranzacțiilor cu modificări

Description

O tranzacție de editare a obiectelor de pagină amână generarea nativă de conținut, astfel încât mutațiile de inserare, eliminare, transformare, de proprietăți, de marcaj de conținut și de aspect al adnotărilor se aplică ca o singură operație atomică delimitată la pagină. Această proprietate expune starea ei în timp real, pentru garduri și diagnostice

MutationCount avansează cu fiecare mutație amânată reușită, iar fiecare astfel de mutație invalidează și cache-urile paginii, astfel încât niciun randament, instantaneu sau thumbnail învechit nu supraviețuiește editării

Commit-ul unei tranzacții cu modificări regenerează conținutul paginii o singură dată și avansează ContentGenerationCount. Commit-ul unei tranzacții fără efect sau rollback-ul restabilește referința fără generare

Remarks

Commit-ul și rollback-ul șterg Active și Dirty, dar lasă PageNumber și ambele contoare drept diagnostice finale, până când următoarea tranzacție începe și le resetează

În afara unei tranzacții fiecare câmp păstrează valoarea implicită, deci Active = False este testul fiabil de inactivitate

Starea acoperă doar tranzacțiile de obiecte de pagină; tranzacțiile la nivel de document deschise cu BeginEditTransaction sunt raportate de jurnalul de editare

Example

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;

See Also

PageObjectEditTransaction, BeginEditTransaction, CommitEditTransaction, RollbackEditTransaction, UpdatePageObject