Класс THPDFRandomAccessSource
Абстрактный базовый класс, позволяющий THotPDF.LoadFromRandomAccessSource загружать PDF из любого определённого вызывающим кодом хранилища байтов с прямым доступом без необходимости в реализации TStream
Объявление
THPDFRandomAccessSource = class
public
function GetSize: Int64; virtual; abstract;
function ReadAt(Offset: Int64; var Buffer;
Count: Longint): Longint; virtual; abstract;
end;
Модуль
HPDFDoc
Элементы
| Имя | Назначение |
|---|---|
GetSize | Возвращает стабильную байтовую длину базового хранилища |
ReadAt | Читает Count байт, начиная с Offset, в Buffer |
Примечания по использованию
- Создайте подкласс и переопределите оба абстрактных метода, чтобы адаптировать HotPDF к запросам HTTP-диапазонов, BLOB-объектам баз данных, сжатым архивам, зашифрованным томам или любому виртуальному хранилищу, способному предоставлять байты по смещению
GetSizeдолжен возвращать стабильную, неотрицательную байтовую длину в течение времени жизни загрузки; HotPDF разбирает таблицы перекрёстных ссылок и объектные потоки, перемещаясь по этому источникуReadAtвозвращает число фактически переданных байт (от нуля доCount); парсер воспринимает короткое чтение на документированном конце файла как конец потока, а не как ошибку- Источник должен оставаться действительным в течение использования загруженного документа; передайте
OwnsSource = Trueв LoadFromRandomAccessSource, чтобы HotPDF освободил источник автоматически