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 | 指名第一个失败检查的 fail-closed 原因文本 |
使用说明
- 由
THotPDF.ValidateLinearizedSource为任意THPDFRandomAccessSource填充;校验在第一个失败的部分停止,并把原因记入Diagnostic - 用各部分标志把损坏的提示流与损坏的字典区分开,再判断渐进加载是否安全
- 字典检查一通过就会填充解析出的头部值,即使后续提示检查失败也是如此