THPDFLinearizationValidationInfo Record
선형화된 소스의 파트별 판정입니다. 선형화 사전, 첫 페이지 섹션, page-offset 힌트, shared-object 힌트와 함께 파싱된 헤더 값과 diagnostic 문자열을 담습니다
선언
THPDFLinearizationValidationInfo= record
DictionaryValid: boolean;
FirstPageSectionValid: boolean;
PageOffsetHintsValid: boolean;
SharedObjectHintsValid: boolean;
FirstPageObjectNumber: Integer;
PageCount: Integer;
HintOffset: Int64;
HintLength: Int64;
FirstPageEndOffset: Int64;
MainXRefOffset: Int64;
Valid: boolean;
Diagnostic: AnsiString;
end;
유닛
HPDFDoc
필드
| 필드 | 목적 |
|---|---|
DictionaryValid | /L, /O, /E, /N, /T, /H 사전 항목이 파싱되고 그 범위가 파일 크기와 일치할 때 true |
FirstPageSectionValid | 선언된 끝 오프셋을 포함해 첫 페이지 객체 섹션 검사가 통과하면 true |
PageOffsetHintsValid | page-offset 힌트 스트림이 디코딩되고 그 값이 문서와 일치하면 true |
SharedObjectHintsValid | shared-object 힌트 스트림이 디코딩되고 그 값이 문서와 일치하면 true |
FirstPageObjectNumber | dictionary의 /O 항목에서 파싱한 객체 번호 |
PageCount | 사전의 /N 항목에서 파싱한 페이지 수 |
HintOffset / HintLength | 사전의 /H 항목에서 온 기본 힌트 스트림의 바이트 범위 |
FirstPageEndOffset | 사전의 /E 항목에서 온 첫 페이지 섹션의 끝 오프셋 |
MainXRefOffset | 사전의 /T 항목에서 온 메인 크로스 레퍼런스 테이블 오프셋 |
Valid | 전체 판정. 파트별 검사가 모두 통과했을 때만 true. 함수 결과와 같은 값입니다 |
Diagnostic | 처음 실패한 검사를 가리키는 fail-closed 사유 텍스트 |
사용 참고 사항
- 임의의
THPDFRandomAccessSource에 대해THotPDF.ValidateLinearizedSource가 채웁니다. 검증은 처음 실패한 파트에서 멈추고 사유를Diagnostic에 기록합니다 - 점진적 로딩이 안전한지 판단하기 전에 파트별 플래그로 망가진 힌트 스트림과 망가진 사전을 구분합니다
- 파싱된 헤더 값은 사전 검사가 통과하는 즉시 채워지며, 뒤의 힌트 검사가 실패해도 그대로입니다