THPDFXRefIntegrityInfo 记录
交叉引用表健康状况:条目计数、空闲链状态、无效类型、重复与被遮蔽定义
声明
THPDFXRefIntegrityInfo= record
EntryCount: Integer;
FreeEntryCount: Integer;
FreeChainLength: Integer;
UnlinkedFreeEntryCount: Integer;
InvalidFreeLinkCount: Integer;
FreeCycleCount: Integer;
InvalidEntryTypeCount: Integer;
GenerationTransitionErrorCount: Integer;
DuplicateDefinitionCount: Integer;
ShadowedDefinitionCount: Integer;
DroppedShadowedDetailCount: Integer;
Valid: boolean;
Diagnostic: AnsiString;
ShadowedEntries: THPDFXRefShadowedEntryArray;
end;
单元
HPDFDoc
字段
| 字段 | 用途 |
|---|---|
EntryCount | 合并交叉引用节的条目总数;为 0 表示没有可用的完整性数据 |
FreeEntryCount | 标记为空闲(类型 f)的条目数 |
FreeChainLength | 从对象 0 可达的空闲链长度 |
UnlinkedFreeEntryCount | 存在但无法经空闲链到达的空闲条目数 |
InvalidFreeLinkCount | /Next 式链接指向非空闲条目的空闲条目数 |
FreeCycleCount | 遍历空闲链时检测到的环数 |
InvalidEntryTypeCount | 类型字节既非在用也非空闲的条目数 |
GenerationTransitionErrorCount | 从在用转空闲时 generation 违反 mod-65536 规则的转换数 |
DuplicateDefinitionCount | 跨修订被定义多次的对象编号数量 |
ShadowedDefinitionCount | 旧副本输给最新修订的重复定义数量 |
DroppedShadowedDetailCount | 完整细节未能保留在 ShadowedEntries 中的被遮蔽条目数 |
Valid | 合并表通过全部结构检查时为 True |
Diagnostic | 描述发现的第一个问题类别的文本 |
ShadowedEntries | 被遮蔽定义的逐条目细节,含生效与被遮蔽条目的类型、偏移、generation 与修订 |
使用说明
- 用
GetLoadedXRefIntegrityInfo填充;已加载文档没有产出完整性扫描时返回 false FreeCycleCount和InvalidFreeLinkCount大于零意味着任何增量保存之前都要先修复空闲链ShadowedEntries是ShadowedDefinitionCount的证据链;配合THPDFXRefMergeInfo可以看出哪个修订优先级胜出