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 LongParâmetros
| URL | O endereço http ou https do PDF remoto |
|---|---|
| Password | A senha do documento, ou uma cadeia vazia quando o PDF não está encriptado |
| Options | Zero para a abertura predefinida com aquecimento da primeira página, ou PDF_NET_OPT_NO_WARMING para abrir puramente a pedido |
| ChunkSize | Apenas Delphi; a granularidade alinhada de obtenção de intervalos, com zero a selecionar 64 KiB |
| CacheLimitBytes | Apenas 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 |
| CoalesceWindowMS | Apenas 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
| >0 | Um handle de documento de acesso direto |
|---|---|
| 0 | O 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