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를 반환하며, 아무 변경이 없는 no-op 트랜잭션은 재생성 없이 False를 반환합니다

RollbackPageObjectEditTransaction은 지연된 변경을 직렬화하지 않고 검증된 기준 스냅샷을 복원합니다

Status

TPdfPageObjectEditTransactionStatusActive, Dirty, 1 기반 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