Запись THPDFProgressiveLoadInfo
Сообщает статус линеаризации, смещения байтов и доступность диапазонов для прогрессивной загрузки линеаризованного PDF
Объявление
THPDFProgressiveLoadInfo= record
Status: THPDFProgressiveLoadStatus;
FileLength: Int64;
FirstPageEndOffset: Int64;
MainXRefOffset: Int64;
MainXRefRangeOffset: Int64;
MainXRefRangeLength: Int64;
FirstPageObjectNumber: Integer;
PageCount: Integer;
HeaderRangeAvailable: boolean;
FirstPageRangeAvailable: boolean;
MainXRefRangeAvailable: boolean;
WholeDocumentAvailable: boolean;
Diagnostic: AnsiString;
end;
Модуль
HPDFDoc
Поля
| Поле | Назначение |
|---|---|
Status | Вердикт прогрессивной загрузки от pldsHeaderUnavailable до pldsDocumentReady |
FileLength | Полный размер источника в байтах |
FirstPageEndOffset | Смещение байта сразу за самодостаточной секцией первой страницы |
MainXRefOffset | Заявленное смещение основной cross-reference секции |
MainXRefRangeOffset | Смещение основного xref минус 4096 байт «назад», ограничено нулём |
MainXRefRangeLength | Байты от MainXRefRangeOffset до конца файла |
FirstPageObjectNumber | Номер объекта линеаризованной первой страницы |
PageCount | Полное число страниц из словаря линеаризации |
HeaderRangeAvailable | True, когда первые 1024 байта заголовка присутствуют в источнике |
FirstPageRangeAvailable | True, когда каждый диапазон байтов секции первой страницы присутствует |
MainXRefRangeAvailable | True, когда диапазон основного xref присутствует в источнике |
WholeDocumentAvailable | True, когда доступен весь файл |
Diagnostic | Текст, описывающий, что доступно или почему планирование остановилось |
Примечания по использованию
- Заполняйте её методом
GetProgressiveLinearizedLoadInfoперед решением: стримить первую страницу или ждать весь файл - Эти смещения
ReadProgressiveLinearizedFirstPageSectionиспользует, чтобы извлечь пригодную для отрисовки первую страницу из частичной загрузки - Нелинеаризованный файл даёт
pldsNotLinearizedс собственной диагностикой планировщика, поэтому откатывайтесь к обычной полной загрузке