PDFium Delphi Component 文件

页面对象编辑事务

组件: TPdf  ·  单元: PDFium
将原生页面对象变更组合为一个原子的页面作用域操作

语法

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

说明

BeginPageObjectEditTransaction 捕获活动文档的一个有界且可重现的快照,并将事务绑定到当前页面

页面对象的插入、移除、变换、属性、内容标记、注释对象和注释外观变更仍保持为原生 PDFium 操作,而内容生成被推迟

当至少一个变更成功时,CommitPageObjectEditTransaction 调用一次 FPDFPage_GenerateContent 并返回 True;对于没有实际变更的空事务则不做生成并返回 False

RollbackPageObjectEditTransaction 恢复经过验证的基线快照,而不序列化被推迟的变更

状态

TPdfPageObjectEditTransactionStatus 报告 Active、Dirty、从 1 开始的 PageNumber、成功的 MutationCount 以及 ContentGenerationCount

提交之后,最终的变更与生成计数器仍保留供诊断使用

失败行为

示例

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

参见

BeginEditTransaction, UpdatePageObject, AddPageObjectMark, RefreshAppearance