PDFium Delphi Component Docs

Page-object edit transactions

Component: TPdf  ·  Unit: PDFium
รวม mutation ของ page object ระดับ native ไว้เป็นการทำงานเดียวแบบ atomic ที่ผูกกับหน้า

Syntax

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

Description

BeginPageObjectEditTransaction เก็บ snapshot ที่ทำซ้ำได้แบบจำกัดขอบเขตของเอกสารที่ active อยู่ แล้วผูกธุรกรรมไว้กับหน้าปัจจุบัน

mutation ของ page object ทั้งการเพิ่ม ลบ transform คุณสมบัติ content-mark annotation-object และลักษณะปรากฏของ annotation ยังคงเป็นการทำงานระดับ native ของ PDFium ขณะที่การสร้าง content ถูกเลื่อนออกไป

CommitPageObjectEditTransaction จะเรียก FPDFPage_GenerateContent หนึ่งครั้งเมื่อมี mutation สำเร็จอย่างน้อยหนึ่งรายการแล้วคืน True หรือคืน False โดยไม่สร้าง content ใหม่ถ้าธุรกรรมไม่มีอะไรเปลี่ยน

RollbackPageObjectEditTransaction คืนค่า baseline snapshot ที่ผ่านการตรวจแล้ว โดยไม่แปลง mutation ที่เลื่อนไว้ออกมา

Status

TPdfPageObjectEditTransactionStatus รายงาน Active, Dirty, PageNumber แบบเริ่มที่ 1, MutationCount ที่สำเร็จ และ ContentGenerationCount

ตัวนับ mutation และ generation สุดท้ายยังอ่านได้หลัง commit เพื่อใช้วิเคราะห์ปัญหา

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