THPDFLinearizedPageRangePlan レコード
リニアライズドファイルの 1 ページをプログレッシブに読むためのバイト範囲プラン。ステータスと診断、解析済みヘッダオフセット、ページオブジェクトの事実、ヒントストリームの配置、共有グループの事実、転送合計、順序付きバイト範囲を含みます
宣言
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 | 要求されたゼロベースページ。ヘッダのみのブートストラッププランでは -1 |
FirstPageIndex / PageCount | リニアライゼーションヘッダから解析されたファーストページインデックスとページ数 |
FirstPageEndOffset / MainXRefOffset | ヘッダの /E と /T の値。ファーストページセクションの終端とメインクロスリファレンスのオフセット |
PageObjectNumber / PageObjectCount | 要求ページのオブジェクト番号と、そのオブジェクトリスト内のオブジェクト数 |
PageOffset / PageLength | ファイル内でページのセクションが占めるバイト範囲 |
PrimaryHintOffset / PrimaryHintLength | プライマリヒントストリームの配置 |
OverflowHintOffset / OverflowHintLength | オーバーフローヒントストリームの配置。なければゼロと空 |
SharedGroupCount / CrossReferenceEntryCount | ページについて計画された共有オブジェクトグループ数と、プランがカバーするクロスリファレンスエントリ数 |
HintBytesDecoded | プラン構築中に実際にデコードされたヒントペイロードのバイト数 |
RequiredBytes | ページをレンダリングするために転送が必要な合計バイト数 |
TransferRatio | RequiredBytes を FileLength で割った値。計画が失敗した場合はゼロ |
RangeCount / DependencyRangeCount | Ranges と DependencyRanges のエントリ数 |
AllRangesAvailable | 計画されたすべての範囲がランダムアクセスソースに存在する場合に true |
UsesCrossReferenceStream | クラシックなテーブルではなくクロスリファレンスストリームを対象にプランが構築された場合に true |
HintEncoding | ヒントストリームから検出された THPDFLinearizedHintEncoding のレイアウト |
Ranges | 要求ページの取得対象となる順序付きバイト範囲。オプションに従ってブートストラップとクロスリファレンスの範囲を含みます |
DependencyRanges | ページが依存する共有オブジェクトのバイト範囲 |
Diagnostic | Status が失敗を報告するときのフェイルクローズ理由テキスト |
使用上の注意
- ページごとに 1 つずつ
THotPDF.PlanProgressiveLinearizedPageRangesから要求します。他のフィールドを信頼する前にStatusを確認してください - 最初の描画を最速にするためまず
Rangesを取得し、共有オブジェクトが必要になり次第DependencyRangesを取得します。再描画スケジューラはまさにこの順序でプランを消費します - プログレッシブ配送に踏み切る前の帯域見積りには
TransferRatioとRequiredBytesを使います