Запись THPDFLinearizationValidationInfo
Проверки по частям для линеаризованного источника: словарь линеаризации, секция первой страницы, page-offset hint-данные и shared-object hint-данные, плюс разобранные значения заголовка и диагностическая строка
Объявление
THPDFLinearizationValidationInfo= record
DictionaryValid: boolean;
FirstPageSectionValid: boolean;
PageOffsetHintsValid: boolean;
SharedObjectHintsValid: boolean;
FirstPageObjectNumber: Integer;
PageCount: Integer;
HintOffset: Int64;
HintLength: Int64;
FirstPageEndOffset: Int64;
MainXRefOffset: Int64;
Valid: boolean;
Diagnostic: AnsiString;
end;
Модуль
HPDFDoc
Поля
| Поле | Назначение |
|---|---|
DictionaryValid | true, когда записи словаря /L, /O, /E, /N, /T и /H разбираются и их диапазоны остаются согласованными с размером файла |
FirstPageSectionValid | true, когда секция объектов первой страницы проходит проверку, включая заявленное конечное смещение |
PageOffsetHintsValid | true, когда hint-поток смещений страниц декодируется и его значения согласуются с документом |
SharedObjectHintsValid | true, когда hint-поток общих объектов декодируется и его значения согласуются с документом |
FirstPageObjectNumber | Номер объекта, разобранный из записи /O словаря |
PageCount | Число страниц, разобранное из записи /N словаря |
HintOffset / HintLength | Диапазон байтов основного hint-потока из записи /H словаря |
FirstPageEndOffset | Конечное смещение секции первой страницы из записи /E словаря |
MainXRefOffset | Смещение главной cross-reference-таблицы из записи /T словаря |
Valid | Общий вердикт, true только когда прошла каждая частная проверка; повторяет результат функции |
Diagnostic | Текст причины при отказе, называющий первую не прошедшую проверку |
Примечания по использованию
- Заполняется методом
THotPDF.ValidateLinearizedSourceдля любогоTHPDFRandomAccessSource; валидация останавливается на первой не прошедшей проверке части и записывает причину вDiagnostic - Используйте флаги по частям, чтобы отделить повреждённый hint-поток от повреждённого словаря, прежде чем решать, безопасна ли прогрессивная загрузка
- Разобранные значения заголовка заполняются, как только проходят проверки словаря, даже если последующие проверки hint-данных завершились неудачно