DAOpenFromURL
Zarządzanie dokumentami, funkcje bezpośredniego dostępu
Opis
Otwiera zdalny PDF przez HTTP do bezpośredniego dostępu przy użyciu żądań byte-range
Transport raz sonduje URL, by potwierdzić obsługę byte-range i poznać całkowitą długość, a potem przeszukiwalny strumień napędza istniejący czytnik dostępu losowego, dzięki czemu przez sieć pobierane są tylko faktycznie czytane obiekty
Gdy dokument jest zlinearyzowany, a podgrzewanie cache włączone, sekcja pierwszej strony jest pobierana z wyprzedzeniem w budżecie zatrzymanych bajtów, więc strona 1 renderuje się, zanim dotknięta zostanie reszta pliku
Składnia
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 LongParametry
| URL | Adres http lub https zdalnego pliku PDF |
|---|---|
| Password | Hasło dokumentu albo łańcuch pusty, gdy plik PDF nie jest zaszyfrowany |
| Options | Zero dla domyślnego otwarcia z podgrzaną pierwszą stroną albo PDF_NET_OPT_NO_WARMING, aby otwierać wyłącznie na żądanie |
| ChunkSize | Tylko Delphi; wyrównana ziarnistość pobierania zakresów, przy czym zero wybiera 64 KiB |
| CacheLimitBytes | Tylko Delphi; maksymalna liczba zatrzymanych bajtów źródła, przy czym zero wybiera 4 MiB, a wartości poniżej jednego fragmentu są podnoszone do jednego fragmentu |
| CoalesceWindowMS | Tylko Delphi; okno zbierania dla pierwszego niebuforowanego fragmentu każdego odczytu bezwzględnego, przy domyślnych 2 milisekundach, a zero wyłącza początkowe opóźnienie |
Wartości zwracane
| >0 | Uchwyt dokumentu o bezpośrednim dostępie |
|---|---|
| 0 | Nie udało się otworzyć dokumentu; LastErrorCode przyjmuje wartość PDFLIB_ERROR_NET_OPEN, PDFLIB_ERROR_NET_RANGE_UNSUPPORTED, PDFLIB_ERROR_NET_HTTP albo kod struktury lub hasła |
Uwagi
Serwer musi ogłaszać obsługę byte-range; w przeciwnym razie wywołanie szybko zawodzi z PDFLIB_ERROR_NET_RANGE_UNSUPPORTED zamiast pobierać cały plik
Zwrócony uchwyt zamknij przez DACloseFile, który zwalnia też leżący u podłoża strumień transportowy
Współbieżne odroczone odczyty współdzielą żądania tego samego bloku i łączą sąsiednie zakolejkowane bloki w odczyty źródła ograniczone do 16 MiB
Użyj GetLinearizedURLAccessPlan, aby obejrzeć układ byte-range strony 1 bez otwierania dokumentu
Użyj DAGetRangeSourceCacheInfo, DASetRangeSourceCacheLimit i DAClearRangeSourceCache, aby obserwować lub zmieniać podręczną pamięć bezpośredniego dostępu Delphi