THPDFXRefRecoveryInfo 记录
有界交叉引用恢复的结果:状态、方法、扫描量、候选计数与选定的 xref 偏移
声明
THPDFXRefRecoveryInfo= record
Status: THPDFXRefRecoveryStatus;
Method: THPDFXRefRecoveryMethod;
BytesScanned: Int64;
CandidateObjectCount: Integer;
RecoveredObjectCount: Integer;
DuplicateObjectCount: Integer;
RejectedCandidateCount: Integer;
XRefCandidateCount: Integer;
SelectedXRefOffset: Int64;
Diagnostic: AnsiString;
end;
单元
HPDFDoc
字段
| 字段 | 用途 |
|---|---|
Status | 恢复判定:无需恢复、成功、已禁用、触及扫描 / 对象 / xref 上限之一,或失败 |
Method | 表恢复的方式:重定位的交叉引用节,或完全重建的对象偏移 |
BytesScanned | 有界扫描检查过的文件字节数 |
CandidateObjectCount | 扫描字节范围内找到的对象候选数 |
RecoveredObjectCount | 被接受进重建交叉引用表的候选数 |
DuplicateObjectCount | 对象编号已被恢复的重复候选数 |
RejectedCandidateCount | 因不可用而被丢弃的候选数 |
XRefCandidateCount | 扫描时找到的完整 xref 节数 |
SelectedXRefOffset | 为重建选中的 xref 节偏移,或重定位节的位置 |
Diagnostic | 描述恢复如何收场的文本 |
使用说明
- 用
GetLoadedXRefRecoveryInfo填充;Status仍为xrrsNotNeeded(即规范优先的正常加载路径已成功)时返回 false - 只有正常加载无法产出真实页面树时才会运行恢复——要么加载失败,要么恢复模式强制执行
- 可通过
GetLoadedParserRecoveryEvents查看完整的决策过程,其中的事件会记录这些总数背后每一次候选项的接受、拒绝和超限