Запись 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: он возвращает false, покаStatusвсё ещёxrrsNotNeeded, то есть нормальный загрузочный путь «сперва по спецификации» удался - Восстановление запускается только тогда, когда обычная загрузка не может дать настоящее дерево страниц, — из-за сбоя или по принуждению режима восстановления
- Проследите всю цепочку решений через
GetLoadedParserRecoveryEvents: его события логируют каждое принятие или отклонение кандидата и каждое превышение лимита за этими суммами