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 LongParamètres
| URL | L'adresse http ou https du PDF distant |
|---|---|
| Password | Le mot de passe du document, ou une chaîne vide lorsque le PDF n'est pas chiffré |
| Options | Zé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 |
| ChunkSize | Delphi uniquement ; la granularité alignée d'extraction de plages, zéro sélectionnant 64 KiB |
| CacheLimitBytes | Delphi 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 |
| CoalesceWindowMS | Delphi 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
| >0 | Un handle de document à accès direct |
|---|---|
| 0 | Le 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