THPDFXRefIntegrityInfo Record
交叉參照表健康狀態:項目數、free chain 狀態、無效型別、重複與被遮蔽的定義
宣告
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 | 合併後各交叉參照 section 的項目總數;為零代表沒有完整性資料 |
FreeEntryCount | 標記為 free(type f)的項目數 |
FreeChainLength | 從物件 0 可達的 free list 鏈長度 |
UnlinkedFreeEntryCount | 存在卻無法經由 free chain 到達的 free 項目數 |
InvalidFreeLinkCount | /Next 式連結指向非 free 項目的 free 項目數 |
FreeCycleCount | 走訪 free chain 時偵測到的循環數 |
InvalidEntryTypeCount | type 位元組既非 in-use 也非 free 的項目數 |
GenerationTransitionErrorCount | generation 號違反 mod-65536 規則的 in-use 轉 free 轉換數 |
DuplicateDefinitionCount | 跨修訂被定義多次的物件編號數 |
ShadowedDefinitionCount | 較舊副本被最新修訂蓋掉的重複定義數 |
DroppedShadowedDetailCount | 完整細節無法保留在 ShadowedEntries 的被遮蔽項目數 |
Valid | 合併後的表通過所有結構檢查時為 True |
Diagnostic | 描述第一個發現問題類別的文字 |
ShadowedEntries | 被遮蔽定義的逐項細節,含作用中與被遮蔽的型別、偏移、generation 與修訂 |
使用說明
- 用
GetLoadedXRefIntegrityInfo填入;已載入文件未產生完整性掃描時回傳 false FreeCycleCount與InvalidFreeLinkCount大於零,代表在任何增量儲存前得先修復空閒串列ShadowedEntries是ShadowedDefinitionCount的證據鏈;搭配THPDFXRefMergeInfo可以看出是哪個修訂優先序產生了勝出者