THPDFLinearizedPageRangePlan Record
선형화 파일의 한 페이지를 점진적으로 읽기 위한 바이트 범위 플랜입니다. 상태와 diagnostic, 파싱된 헤더 오프셋, 페이지 객체 정보, 힌트 스트림 배치, shared-group 정보, 전송 총량, 순서 있는 바이트 범위를 담습니다
선언
THPDFLinearizedPageRangePlan= record
Status: THPDFLinearizedPagePlanStatus;
FileLength: Int64;
PageIndex: Integer;
FirstPageIndex: Integer;
PageCount: Integer;
FirstPageEndOffset: Int64;
MainXRefOffset: Int64;
PageObjectNumber: Integer;
PageObjectCount: Integer;
PageOffset: Int64;
PageLength: Int64;
PrimaryHintOffset: Int64;
PrimaryHintLength: Int64;
OverflowHintOffset: Int64;
OverflowHintLength: Int64;
SharedGroupCount: Integer;
CrossReferenceEntryCount: Integer;
HintBytesDecoded: Int64;
RequiredBytes: Int64;
TransferRatio: Double;
RangeCount: Integer;
DependencyRangeCount: Integer;
AllRangesAvailable: boolean;
UsesCrossReferenceStream: boolean;
HintEncoding: THPDFLinearizedHintEncoding;
Ranges: THPDFLinearizedByteRangeArray;
DependencyRanges: THPDFLinearizedByteRangeArray;
Diagnostic: AnsiString;
end;
유닛
HPDFDoc
필드
| 필드 | 목적 |
|---|---|
Status | THPDFLinearizedPagePlanStatus 결과. ready, 미선형화, 미지원 크로스 레퍼런스, 한도 초과, 범위 불가 중 하나 |
FileLength | 계획 대상 소스의 전체 크기 |
PageIndex | 요청한 0 기반 페이지. 헤더만 있는 bootstrap 플랜이면 -1 |
FirstPageIndex / PageCount | 선형화 헤더에서 파싱한 첫 페이지 인덱스와 페이지 수 |
FirstPageEndOffset / MainXRefOffset | 헤더의 /E와 /T 값. 첫 페이지 섹션의 끝과 메인 크로스 레퍼런스 오프셋 |
PageObjectNumber / PageObjectCount | 요청한 페이지의 객체 번호와 그 객체 목록의 객체 수 |
PageOffset / PageLength | 파일에서 페이지 섹션이 차지하는 바이트 범위 |
PrimaryHintOffset / PrimaryHintLength | 기본 힌트 스트림의 배치 |
OverflowHintOffset / OverflowHintLength | overflow 힌트 스트림의 배치. 없으면 0과 빈 값 |
SharedGroupCount / CrossReferenceEntryCount | 페이지에 대해 계획된 shared-object 그룹 수와 플랜이 커버하는 크로스 레퍼런스 항목 수 |
HintBytesDecoded | 플랜을 만드는 동안 실제로 디코딩한 힌트 페이로드 바이트 |
RequiredBytes | 페이지를 렌더링하려고 전송해야 하는 총 바이트 |
TransferRatio | RequiredBytes를 FileLength로 나눈 값. 계획에 실패하면 0 |
RangeCount / DependencyRangeCount | Ranges와 DependencyRanges의 항목 수 |
AllRangesAvailable | 계획된 모든 범위가 랜덤 액세스 소스에 있을 때 true |
UsesCrossReferenceStream | 클래식 테이블이 아닌 크로스 레퍼런스 스트림 기준으로 플랜이 만들어졌을 때 true |
HintEncoding | 힌트 스트림에서 탐지된 THPDFLinearizedHintEncoding 레이아웃 |
Ranges | 요청한 페이지를 가져오기 위한 순서 있는 바이트 범위. 옵션에 따라 bootstrap과 크로스 레퍼런스 범위를 포함합니다 |
DependencyRanges | 페이지가 의존하는 shared object의 바이트 범위 |
Diagnostic | Status가 실패를 보고할 때의 fail-closed 사유 텍스트 |
사용 참고 사항
- 페이지별로 하나씩
THotPDF.PlanProgressiveLinearizedPageRanges에 요청합니다. 다른 필드를 믿기 전에Status부터 확인합니다 - 첫 화면을 가장 빠르게 띄우려면
Ranges를 먼저 가져오고, shared object가 필요할 때DependencyRanges를 가져옵니다. redraw 스케줄러도 정확히 이 순서로 플랜을 소비합니다 - 점진적 전송을 본격화하기 전에
TransferRatio와RequiredBytes로 대역폭 요구량을 가늠합니다