Запись THPDFLinearizedPageRangePlan
План диапазонов байтов для прогрессивного чтения одной страницы линеаризованного файла: статус и диагностика, разобранные смещения заголовка, факты о странице-объекте, размещение hint-потоков, факты о группах общих объектов, итоги передачи и упорядоченные диапазоны байтов
Объявление
THPDFLinearizedPageRangePlan= record
Status: THPDFLinearizedPagePlanStatus;
FileLength: Int64;
PageIndex: Integer;
FirstPageIndex: Integer;
PageCount: Integer;
FirstPageEndOffset: Int64;
MainXRefOffset: Int64;
PageObjectNumber: Integer;
PageObjectCount: Integer;
PageOffset: Int64;
PageLength: Int64;
PrimaryHintOffset: Int64;
PrimaryHintLength: Int64;
OverflowHintOffset: Int64;
OverflowHintLength: Int64;
SharedGroupCount: Integer;
CrossReferenceEntryCount: Integer;
HintBytesDecoded: Int64;
RequiredBytes: Int64;
TransferRatio: Double;
RangeCount: Integer;
DependencyRangeCount: Integer;
AllRangesAvailable: boolean;
UsesCrossReferenceStream: boolean;
HintEncoding: THPDFLinearizedHintEncoding;
Ranges: THPDFLinearizedByteRangeArray;
DependencyRanges: THPDFLinearizedByteRangeArray;
Diagnostic: AnsiString;
end;
Модуль
HPDFDoc
Поля
| Поле | Назначение |
|---|---|
Status | Исход THPDFLinearizedPagePlanStatus: готов, не линеаризован, неподдерживаемый cross-reference, превышены пределы или диапазоны недоступны |
FileLength | Полный размер планируемого источника |
PageIndex | Запрошенная страница с нумерацией от нуля или -1 для bootstrap-планов только с заголовком |
FirstPageIndex / PageCount | Индекс первой страницы и число страниц, разобранные из заголовка линеаризации |
FirstPageEndOffset / MainXRefOffset | Значения /E и /T заголовка: конец секции первой страницы и смещение главного cross-reference |
PageObjectNumber / PageObjectCount | Номер объекта запрошенной страницы и число объектов в её списке объектов |
PageOffset / PageLength | Диапазон байтов секции страницы в файле |
PrimaryHintOffset / PrimaryHintLength | Размещение основного hint-потока |
OverflowHintOffset / OverflowHintLength | Размещение overflow hint-потока; нули и пусто, когда его нет |
SharedGroupCount / CrossReferenceEntryCount | Группы общих объектов, запланированные для страницы, и записи cross-reference, охваченные планом |
HintBytesDecoded | Байты полезной нагрузки hint-данных, фактически декодированные при построении плана |
RequiredBytes | Суммарное число байтов, которые нужно передать для отрисовки страницы |
TransferRatio | RequiredBytes, делённые на FileLength; ноль при неудаче планирования |
RangeCount / DependencyRangeCount | Число записей в Ranges и в DependencyRanges |
AllRangesAvailable | true, когда каждый запланированный диапазон присутствует в источнике с произвольным доступом |
UsesCrossReferenceStream | true, когда план построен по cross-reference-потоку, а не по классической таблице |
HintEncoding | Раскладка THPDFLinearizedHintEncoding, обнаруженная в hint-потоках |
Ranges | Упорядоченные диапазоны байтов для загрузки запрошенной страницы, включая bootstrap- и cross-reference-диапазоны согласно опциям |
DependencyRanges | Диапазоны байтов общих объектов, от которых зависит страница |
Diagnostic | Текст причины при отказе, когда Status сообщает о неудаче |
Примечания по использованию
- Запрашивайте по одному на страницу из
THotPDF.PlanProgressiveLinearizedPageRanges; проверяйтеStatus, прежде чем доверять любому другому полю - Загружайте сначала
Rangesради самой быстрой первой отрисовки, затемDependencyRangesпо мере надобности в общих объектах; планировщик перерисовки потребляет план ровно в этом порядке - Используйте
TransferRatioиRequiredBytes, чтобы оценить потребности в пропускной способности до перехода на прогрессивную доставку