property PageObjectEditTransactionStatus: TPdfPageObjectEditTransactionStatus; // read only
type TPdfPageObjectEditTransactionStatus = record
Active: Boolean;
Dirty: Boolean;
PageNumber: Integer;
MutationCount: Integer;
ContentGenerationCount: Integer;
end;
| Active | True entre BeginPageObjectEditTransaction y la confirmación o reversión correspondiente |
| Dirty | True una vez que al menos una mutación se ejecutó dentro de la transacción |
| PageNumber | Página basada en uno a la que la transacción quedó vinculada al comenzar |
| MutationCount | Llamadas UpdatePage exitosas registradas dentro de la transacción |
| ContentGenerationCount | Generaciones de contenido realizadas al confirmar transacciones con cambios |
Una transacción de edición de objetos de página difiere la generación nativa de contenido para que las mutaciones de objetos de página —inserción, eliminación, transformación, propiedades, marcas de contenido y apariencias de anotación— se apliquen como una sola operación atómica con ámbito de página. Esta propiedad expone su estado en vivo para protecciones y diagnósticos
MutationCount avanza con cada mutación diferida exitosa, y cada una de estas mutaciones también invalida las cachés de página para que ningún render, instantánea ni miniatura obsoletos sobrevivan a la edición
Confirmar una transacción con cambios regenera el contenido de la página una vez y avanza ContentGenerationCount. Confirmar una transacción sin operaciones o revertir restaura la línea base sin generación
La confirmación y la reversión limpian Active y Dirty, pero dejan PageNumber y ambos contadores como diagnósticos finales hasta que la siguiente transacción comienza y los restablece
Fuera de una transacción cada campo conserva su valor predeterminado, de modo que Active = False es la prueba fiable de inactividad
El estado cubre solo las transacciones de objetos de página; las transacciones a nivel de documento abiertas con BeginEditTransaction las informa el diario de ediciones
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;