property PageObjectEditTransactionStatus: TPdfPageObjectEditTransactionStatus; // read only
type TPdfPageObjectEditTransactionStatus = record
Active: Boolean;
Dirty: Boolean;
PageNumber: Integer;
MutationCount: Integer;
ContentGenerationCount: Integer;
end;
| Active | True tra BeginPageObjectEditTransaction e il commit o il rollback corrispondente |
| Dirty | True quando almeno una mutazione è stata eseguita all'interno della transazione |
| PageNumber | Pagina a base uno a cui la transazione era associata quando è iniziata |
| MutationCount | Chiamate UpdatePage riuscite registrate all'interno della transazione |
| ContentGenerationCount | Generazioni di contenuto eseguite al commit di transazioni con modifiche |
Una transazione di modifica degli oggetti di pagina rinvia la generazione nativa del contenuto, così le mutazioni di inserimento, rimozione, trasformazione, proprietà, content-mark e aspetto delle annotazioni degli oggetti di pagina si applicano come una singola operazione atomica con ambito di pagina. Questa proprietà ne espone lo stato corrente per controlli e diagnostica
MutationCount avanza a ogni mutazione rinviata riuscita, e ciascuna di queste mutazioni invalida anche le cache della pagina così nessun render, snapshot o thumbnail obsoleto sopravvive alla modifica
Il commit di una transazione con modifiche rigenera il contenuto della pagina una volta e fa avanzare ContentGenerationCount. Il commit di una transazione senza effetti o il rollback ripristina la baseline senza generazione
Commit e rollback azzerano Active e Dirty ma lasciano PageNumber e i due contatori come diagnostica finale finché la transazione successiva non inizia e li azzera
Fuori da una transazione ogni campo mantiene il suo valore predefinito, quindi Active = False è il test affidabile di inattività
Lo stato copre solo le transazioni degli oggetti di pagina; le transazioni a livello di documento aperte con BeginEditTransaction sono riportate dal journal delle modifiche
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;