THPDFXRefRecoveryInfo Record
Bounded cross-reference recovery outcome: status, method, scan volume, candidate counts, and the selected xref offset
Declaration
THPDFXRefRecoveryInfo= record
Status: THPDFXRefRecoveryStatus;
Method: THPDFXRefRecoveryMethod;
BytesScanned: Int64;
CandidateObjectCount: Integer;
RecoveredObjectCount: Integer;
DuplicateObjectCount: Integer;
RejectedCandidateCount: Integer;
XRefCandidateCount: Integer;
SelectedXRefOffset: Int64;
Diagnostic: AnsiString;
end;
Unit
HPDFDoc
Fields
| Field | Purpose |
|---|---|
Status | Recovery verdict: not needed, succeeded, disabled, a scan or object or xref limit was hit, or failed |
Method | How the table was recovered: a relocated section or fully rebuilt object offsets |
BytesScanned | File bytes examined by the bounded scan |
CandidateObjectCount | Object candidates found in the scanned byte ranges |
RecoveredObjectCount | Candidates accepted into the rebuilt cross-reference table |
DuplicateObjectCount | Candidates for object numbers already recovered |
RejectedCandidateCount | Candidates discarded as unusable |
XRefCandidateCount | Whole xref sections found while scanning |
SelectedXRefOffset | Offset of the xref section chosen for the rebuild, or the relocated section's position |
Diagnostic | Text describing how recovery ended |
Usage notes
- Fill it with
GetLoadedXRefRecoveryInfo, which returns false whileStatusis stillxrrsNotNeeded, i.e. the normal spec-first load path succeeded - Recovery runs only after the normal load cannot produce a real page tree, either on failure or when forced by the recovery mode
- Follow the whole decision trail with
GetLoadedParserRecoveryEvents, whose events log every candidate accept, reject, and limit breach behind these totals