PDFium Delphi Component Docs

PageObjectEditTransactionStatus Proprietà

Componente: TPdf  ·  Unità: PDFium
Segnala se una transazione di modifica degli oggetti di pagina è attiva e a che punto è arrivata

Syntax

property PageObjectEditTransactionStatus: TPdfPageObjectEditTransactionStatus; // read only

 

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

ActiveTrue tra BeginPageObjectEditTransaction e il commit o il rollback corrispondente
DirtyTrue quando almeno una mutazione è stata eseguita all'interno della transazione
PageNumberPagina a base uno a cui la transazione era associata quando è iniziata
MutationCountChiamate UpdatePage riuscite registrate all'interno della transazione
ContentGenerationCountGenerazioni di contenuto eseguite al commit di transazioni con modifiche

Description

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

Remarks

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

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