DAOpenFromURL

Управление документами, функции прямого доступа

Описание

Открывает удаленный PDF по HTTP для прямого доступа с использованием запросов диапазонов байтов

Транспорт однократно проверяет URL, чтобы подтвердить поддержку диапазонов байтов и узнать общую длину, затем позиционируемый поток управляет существующим устройством произвольного доступа, так что по сети запрашиваются только фактически читаемые объекты

Когда документ линеаризован и включен прогрев кэша, секция первой страницы предварительно загружается в рамках бюджета удерживаемых байтов, поэтому страница 1 отображается до обращения к остальной части файла

Синтаксис

Delphi

Function TPDFlib.DAOpenFromURL(Const URL, Password: WideString; Options: Integer= 0; ChunkSize: LongInt= 0; CacheLimitBytes: Int64= 0; CoalesceWindowMS: Cardinal= PDF_NET_DEFAULT_COALESCE_WINDOW_MS): Integer;

DLL

int DLDAOpenFromURL(int InstanceID, const wchar_t* URL, const wchar_t* Password, int Options);

ActiveX

Function PDFlib::DAOpenFromURL(URL As String, Password As String, Options As Long) As Long

Параметры

URLАдрес http или https удаленного PDF
PasswordПароль документа или пустая строка, если PDF не зашифрован
OptionsНоль для открытия по умолчанию с прогревом первой страницы или PDF_NET_OPT_NO_WARMING для открытия строго по требованию
ChunkSizeТолько Delphi; выровненная гранулярность выборки диапазонов, ноль выбирает 64 КиБ
CacheLimitBytesТолько Delphi; максимум удерживаемых байтов источника, ноль выбирает 4 МиБ, а значения ниже одного блока поднимаются до одного блока
CoalesceWindowMSТолько Delphi; окно накопления для первого некэшированного блока каждого абсолютного чтения, по умолчанию 2 миллисекунды, ноль отключает начальную задержку

Возвращаемые значения

>0Дескриптор документа прямого доступа
0Документ не удалось открыть; LastErrorCode установлен в PDFLIB_ERROR_NET_OPEN, PDFLIB_ERROR_NET_RANGE_UNSUPPORTED, PDFLIB_ERROR_NET_HTTP либо в код структуры или пароля

Примечания

Сервер должен объявлять поддержку байтовых диапазонов; иначе вызов быстро завершается ошибкой PDFLIB_ERROR_NET_RANGE_UNSUPPORTED вместо загрузки всего файлаЗакройте возвращенный дескриптор методом

Закройте возвращенный дескриптор через DACloseFile, который также освобождает лежащий в основе транспортный поток

Параллельные отложенные чтения совместно используют запросы одного блока и объединяют смежные блоки в очереди в чтения источника с пределом 16 МиБ

GetLinearizedURLAccessPlan

DAGetRangeSourceCacheInfo, чтобы просмотреть раскладку байтовых диапазонов страницы 1 без открытия документаИспользуйте DASetRangeSourceCacheLimit, DAClearRangeSourceCache и