THotPDF.GetProgressiveLinearizedLoadInfo メソッド
上限付きの linearization ヘッダを検証し、自己完結する最初のページ範囲を報告します
宣言
function GetProgressiveLinearizedLoadInfo(Source: THPDFRandomAccessSource; out Info: THPDFProgressiveLoadInfo): boolean;
ユニット
HPDFDoc
パラメータ
| 名前 | 目的 |
|---|---|
Source | 独立して利用可能な範囲を報告できる random-access ソース |
Info | 検証済みの linearization オフセット、範囲フラグ、ステータス、診断を受け取る |
戻り値
有効な linearization 辞書をパースできれば True を返します。必要な範囲がまだ利用できなくても同様です
使用上の注意
- 上限付きヘッダプローブは厳格なページ範囲パーサを使い、/L、/H、/O、/E、/N、/T、トークン構造、それを格納する間接オブジェクトを検証します
- 最初のページの準備完了判定に必要なのは 0 始まりのセクション
[0, /E)だけで、メインの cross-reference 末尾には依存しません - 正当なショートリードは各上限付き要求が完結するまで累積され、読み取りの合間にキャンセルが確認されます
- このメソッドは Source の所有権を取りません
任意ページ範囲の計画
function PlanProgressiveLinearizedPageRanges(Source: THPDFRandomAccessSource; PageIndex: Integer; out Plan: THPDFLinearizedPageRangePlan): boolean; overload;
function PlanProgressiveLinearizedPageRanges(Source: THPDFRandomAccessSource; PageIndex: Integer; const Options: THPDFLinearizedPageRangeOptions; out Plan: THPDFLinearizedPageRangePlan): boolean; overload;
プランナーは生または Flate の primary / overflow hint ストリームをデコードし、要求されたページを /P で対応付け、完全なブートストラップに参照される共有オブジェクトグループと cross-reference データを含め、LF と CRLF の traditional-xref エントリ 0 接頭辞を受け入れ、ソート済みの最小バイト範囲を返します
最初のページの計画は常に自己完結する [0, /E) セクションを使い、hint のデコードを必要としません
デフォルトでは、1 つの結合 shared-object シーケンスを持つ相互運用可能なバイト境界整列行と、Annex F が記述する連続的な MSB 先頭の分割シーケンスを受け入れます。HintEncoding が選択された解釈を識別し、等価な 2 通りの解釈は明示的なまま残り、矛盾する解釈はフェイルクローズします
AllowRowAlignedHints は既定で True で、Annex F 専用の検証にする場合は無効化できます
リソース上限は、デコードされた hint バイト数、ページ数、共有グループと参照、範囲数、マージギャップ、計画された合計バイト数、既定で 256 MiB 天井のプランナーメモリを対象とします。この天井内で検証できない代替 hint 解釈はフェイルクローズし、上限・filter・hint・xref・可用性・ページインデックスの失敗にはそれぞれ異なる THPDFLinearizedPagePlanStatus 値が割り当てられます