THPDFLinearizationValidationInfo レコード
リニアライズドソースの部分ごとの判定。リニアライゼーションディクショナリ、ファーストページセクション、ページオフセットヒント、共有オブジェクトヒントの各判定に加え、解析済みヘッダ値と診断文字列を含みます
宣言
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 | ページオフセットヒントストリームがデコードでき、その値がドキュメントと一致する場合に true |
SharedObjectHintsValid | 共有オブジェクトヒントストリームがデコードでき、その値がドキュメントと一致する場合に true |
FirstPageObjectNumber | 辞書の /O エントリからパースされたオブジェクト番号 |
PageCount | ディクショナリの /N エントリから解析されたページ数 |
HintOffset / HintLength | ディクショナリの /H エントリによるプライマリヒントストリームのバイト範囲 |
FirstPageEndOffset | ディクショナリの /E エントリによるファーストページセクションの終端オフセット |
MainXRefOffset | ディクショナリの /T エントリによるメインクロスリファレンステーブルのオフセット |
Valid | 総合判定。すべての部分別チェックが通ったときだけ true。関数の結果と一致します |
Diagnostic | 最初に失敗したチェックを名指す、フェイルクローズの理由テキスト |
使用上の注意
- 任意の
THPDFRandomAccessSourceについてTHotPDF.ValidateLinearizedSourceが値を書き込みます。検証は最初に失敗した部分で止まり、理由をDiagnosticに記録します - プログレッシブローディングが安全か判断する前に、部分別フラグで壊れたディクショナリと壊れたヒントストリームを切り分けてください
- 解析済みヘッダ値は、ディクショナリチェックが通った時点で埋められます。後続のヒントチェックが失敗しても同じです