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 МиБ
DAGetRangeSourceCacheInfo, чтобы просмотреть раскладку байтовых диапазонов страницы 1 без открытия документаИспользуйте DASetRangeSourceCacheLimit, DAClearRangeSourceCache и