DAOpenFromURL

Gestion de documents, fonctionnalités d'accès direct

Description

Ouvre un PDF distant en HTTP pour un accès direct via des requêtes de plages d'octets

Le transport interroge l'URL une fois pour confirmer la prise en charge de plages d'octets et connaître la longueur totale ; ensuite un flux avec recherche dirige le lecteur d'accès aléatoire existant, si bien seuls les objets réellement lus sont récupérés sur le réseau

Quand le document est linéarisé et que le réchauffement du cache est activé, la section de première page est préchargée dans le budget d'octets conservés afin que la page 1 soit rendue avant que le reste du fichier ne soit touché

Syntaxe

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

Paramètres

URLL'adresse http ou https du PDF distant
PasswordLe mot de passe du document, ou une chaîne vide lorsque le PDF n'est pas chiffré
OptionsZéro pour l'ouverture par défaut avec préchauffage de la première page, ou PDF_NET_OPT_NO_WARMING pour une ouverture purement à la demande
ChunkSizeDelphi uniquement ; la granularité alignée d'extraction de plages, zéro sélectionnant 64 KiB
CacheLimitBytesDelphi uniquement ; le maximum d'octets de source conservés, zéro sélectionnant 4 MiB et les valeurs inférieures à un segment étant ramenées à un segment
CoalesceWindowMSDelphi uniquement ; la fenêtre de collecte du premier segment non en cache de chaque lecture absolue, 2 millisecondes par défaut et zéro désactivant le délai initial

Valeurs de retour

>0Un handle de document à accès direct
0Le document n'a pas pu être ouvert ; LastErrorCode reçoit PDFLIB_ERROR_NET_OPEN, PDFLIB_ERROR_NET_RANGE_UNSUPPORTED, PDFLIB_ERROR_NET_HTTP, ou un code de structure ou de mot de passe

Remarques

Le serveur doit annoncer la prise en charge des plages d'octets ; sinon l'appel échoue immédiatement avec PDFLIB_ERROR_NET_RANGE_UNSUPPORTED au lieu de télécharger tout le fichierFermez le handle renvoyé avec

Fermez le handle renvoyé avec DACloseFile, qui libère aussi le flux de transport sous-jacent

Les lectures différées concurrentes partagent les requêtes d'un même bloc et combinent les blocs adjacents en file en lectures source plafonnées à 16 MiB

Utilisez GetLinearizedURLAccessPlan pour inspecter la disposition de plages d'octets de la page 1 sans ouvrir le document

DAGetRangeSourceCacheInfo pour inspecter l'agencement en plages d'octets de la page 1 sans ouvrir le document. Utilisez DASetRangeSourceCacheLimit, DAClearRangeSourceCache et