THotPDF.PrepareLoadedFormDataRevisionToStream
원본 문서를 바꾸지 않고 실제 로드 그래프의 비공개 리비전을 준비합니다
선언
procedure PrepareLoadedFormDataRevisionToStream(Destination: TStream;
const Password: AnsiString; MaxWorkingBytes, MaxOutputBytes: Int64;
MaxObjects: Integer; Checkpoint: TNotifyEvent = nil;
OriginalSource: TStream = nil);
동작
메서드는 원본 리비전을 단독 생성한 비공개 파일로 복사하고, 별도 증분 문서를 로드하고, 객체 번호·세대 기준으로 의미 객체 그래프를 비교하고, 실제 대기 변경을 클론하고, 결과 후보를 현재 대상 위치에 씁니다
텍스트 값, 기존 appearance, 무관한 대기 catalog 변경, 간접 참조, 스트림 내용, 새 그래프 객체가 준비에 참여합니다. PDF 이름은 한 번 디코딩되고 중복 의미 사전 이름은 잘못된 값입니다
바뀌지 않은 그래프는 빈 증분 교차 참조 섹션을 추가하지 않고 원본 바이트를 그대로 복사합니다. 바뀐 그래프는 완전한 원본 바이트 접두부를 유지하고 현재 리비전을 덧붙입니다
암호화된 리비전은 원본 암호화 사전과 키를 유지합니다. Password는 원본 리비전을 인증해야 하고 UTF-8 바이트로 공급됩니다
OriginalSource를 공급하면 이 문서가 로드된 완전한 불변 원본 리비전, 즉 암호문과 서명 바이트까지여야 합니다. 위치는 성공·실패 모두에서 복원됩니다
OriginalSource가 없으면 메서드는 CopyLoadedSourceToStream을 씁니다. 이는 외부에서 변경 가능한 빌린 소스를 불변 스냅샷으로 만들지 않으므로, 호출자가 정확한 로드 바이트를 보존해야 합니다
MaxWorkingBytes는 1 MiB 이상이어야 하고 MaxOutputBytes와 MaxObjects는 양수여야 합니다. 소스 복사, 객체 비교, 상주·디스크로 넘친 클론 데이터, 출력 길이에 유한한 한도가 있습니다
OperationCancellationToken과 Checkpoint는 복사·비교 중에 폴링됩니다. 복사는 64 KiB 이하 블록으로 이루어지고, 실패한 준비는 부분 대상 바이트를 남길 수 있으므로 호출자가 버려야 합니다
이 저수준 메서드는 그래프 리비전을 준비할 뿐 DocMDP·FieldMDP 아래 대기 변경을 승인하지 않습니다. 폼 갱신 발행 전 서명 정책 인증은 THPDFWindowsFormDataTransaction으로 하세요
원본 THotPDF 그래프, 소스 소유, 대기 변경, 설정은 준비 성공·실패와 무관하게 그대로입니다. 임시 파일은 메서드가 끝날 때 닫히고 제거됩니다
관련 항목
CopyLoadedSourceToStream, THPDFWindowsFormDataTransaction, Windows FDF/XFDF 교환