PDFium Delphi Component Docs

Транзакции правки объектов страницы

Компонент: TPdf  ·  Модуль: PDFium
Группирует нативные мутации объектов страницы в одну атомарную операцию в пределах страницы

Syntax

procedure BeginPageObjectEditTransaction(AllowSignedDocument: Boolean = False);
function CommitPageObjectEditTransaction: Boolean;
procedure RollbackPageObjectEditTransaction;
property PageObjectEditTransactionStatus: TPdfPageObjectEditTransactionStatus;

Description

BeginPageObjectEditTransaction захватывает ограниченный воспроизводимый снимок активного документа и привязывает транзакцию к текущей странице

Мутации объектов страницы — вставка, удаление, преобразование, свойства, марки содержимого, объекты аннотаций и внешние виды аннотаций — остаются нативными операциями PDFium, пока генерация содержимого отложена

CommitPageObjectEditTransaction вызывает FPDFPage_GenerateContent один раз, если хотя бы одна мутация прошла успешно, и возвращает True, либо возвращает False без генерации для транзакции без действий

RollbackPageObjectEditTransaction восстанавливает проверенный базовый снимок, не сериализуя отложенные мутации

Status

TPdfPageObjectEditTransactionStatus сообщает Active, Dirty, PageNumber в нумерации с единицы, число успешных мутаций MutationCount и ContentGenerationCount

Финальные счётчики мутаций и генераций остаются доступны после фиксации для диагностики

Failure behaviour

Example

Pdf.BeginPageObjectEditTransaction;
try
  Pdf.TransformPageObject(0, Matrix);
  Pdf.SetPageObjectMarkParam(0, 0, Param);
  Pdf.CommitPageObjectEditTransaction;
except
  if Pdf.PageObjectEditTransactionStatus.Active then
    Pdf.RollbackPageObjectEditTransaction;
  raise;
end;

See Also

BeginEditTransaction, UpdatePageObject, AddPageObjectMark, RefreshAppearance