PDFium Delphi Component Docs

PageObjectEditTransactionStatus 속성

컴포넌트: TPdf  ·  유닛: PDFium
페이지 객체 편집 트랜잭션이 활성인지, 어디까지 진행되었는지 보고합니다

Syntax

property PageObjectEditTransactionStatus: TPdfPageObjectEditTransactionStatus; // read only

 

type TPdfPageObjectEditTransactionStatus = record
  Active: Boolean;
  Dirty: Boolean;
  PageNumber: Integer;
  MutationCount: Integer;
  ContentGenerationCount: Integer;
end;

ActiveBeginPageObjectEditTransaction부터 짝이 되는 커밋 또는 롤백 사이에서 True입니다
Dirty트랜잭션 안에서 변경이 하나라도 실행된 순간 True입니다
PageNumber트랜잭션이 시작될 때 묶였던 1 기반 페이지입니다
MutationCount트랜잭션 안에서 기록된 성공적인 UpdatePage 호출 수입니다
ContentGenerationCount변경이 있는 트랜잭션을 커밋할 때 수행된 콘텐츠 재생성 횟수입니다

Description

페이지 객체 편집 트랜잭션은 네이티브 콘텐츠 재생성을 지연시켜서 페이지 객체 삽입, 제거, 변환, 속성, 콘텐츠 마크, 주석 모양 변경이 하나의 원자적 페이지 범위 연산으로 적용되게 합니다. 이 속성은 가드와 진단에 쓸 수 있도록 트랜잭션의 실시간 상태를 노출합니다

MutationCount는 성공한 지연 변경마다 증가하고, 그런 변경은 페이지 캐시도 무효화하므로 편집 이후에 낡은 렌더링, 스냅샷, 썸네일이 남지 않습니다

변경이 있는 트랜잭션을 커밋하면 페이지 콘텐츠를 한 번 재생성하고 ContentGenerationCount를 증가시킵니다. no-op 트랜잭션을 커밋하거나 롤백하면 재생성 없이 기준 상태를 복원합니다

Remarks

커밋과 롤백은 ActiveDirty를 지우지만 PageNumber와 두 카운터는 다음 트랜잭션이 시작되어 초기화하기 전까지 최종 진단 값으로 남습니다

트랜잭션 밖에서는 모든 필드가 기본값을 가지므로 Active = False가 신뢰할 수 있는 유휴 검사입니다

이 상태는 페이지 객체 트랜잭션만 다룹니다. BeginEditTransaction으로 연 문서 수준 트랜잭션은 편집 저널이 보고합니다

Example

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;

See Also

PageObjectEditTransaction, BeginEditTransaction, CommitEditTransaction, RollbackEditTransaction, UpdatePageObject