DAOpenFromURL

Gestão de documentos, funcionalidade de acesso direto

Descrição

Abre um PDF remoto por HTTP para acesso direto utilizando pedidos de intervalos de bytes

O transporte sonda o URL uma vez para confirmar o suporte a intervalos de bytes e conhecer o comprimento total; em seguida, um fluxo posicionável aciona o leitor de acesso aleatório existente, de modo a que apenas os objetos efetivamente lidos sejam obtidos pela rede

Quando o documento está linearizado e o aquecimento da cache está ativo, a secção da primeira página é pré-carregada dentro do orçamento de bytes retidos, de modo a que a página 1 seja apresentada antes de o resto do ficheiro ser tocado

Sintaxe

Delphi

Function TPDFlib.DAOpenFromURL(Const URL, Password: WideString; Options: Integer= 0; ChunkSize: Integer= 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

Parâmetros

URLO endereço http ou https do PDF remoto
PasswordA senha do documento, ou uma cadeia vazia quando o PDF não está encriptado
OptionsZero para a abertura predefinida com aquecimento da primeira página, ou PDF_NET_OPT_NO_WARMING para abrir puramente a pedido
ChunkSizeApenas Delphi; a granularidade alinhada de obtenção de intervalos, com zero a selecionar 64 KiB
CacheLimitBytesApenas Delphi; o máximo de bytes de origem retidos, com zero a selecionar 4 MiB e valores abaixo de um bloco elevados a um bloco
CoalesceWindowMSApenas Delphi; a janela de recolha do primeiro bloco fora da cache de cada leitura absoluta, com 2 milissegundos como predefinição e zero a desativar o atraso inicial

Valores devolvidos

>0Um handle de documento de acesso direto
0O documento não pôde ser aberto; LastErrorCode é definido como PDFLIB_ERROR_NET_OPEN, PDFLIB_ERROR_NET_RANGE_UNSUPPORTED, PDFLIB_ERROR_NET_HTTP ou um código de estrutura ou de senha

Observações

O servidor tem de anunciar suporte a intervalos de bytes; caso contrário, a chamada falha rapidamente com PDFLIB_ERROR_NET_RANGE_UNSUPPORTED em vez de descarregar o ficheiro inteiro

Feche o identificador devolvido com DACloseFile, que também liberta o fluxo de transporte subjacente

As leituras diferidas simultâneas partilham pedidos do mesmo bloco e combinam blocos em fila adjacentes em leituras da origem limitadas a 16 MiB

Utilize GetLinearizedURLAccessPlan para inspecionar o esquema de intervalos de bytes da página 1 sem abrir o documento

Utilize DAGetRangeSourceCacheInfo, DASetRangeSourceCacheLimit e DAClearRangeSourceCache para observar ou alterar uma cache de acesso direto Delphi