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 Long

Parametry

URLAdres http lub https zdalnego pliku PDF
PasswordHasło dokumentu albo łańcuch pusty, gdy plik PDF nie jest zaszyfrowany
OptionsZero dla domyślnego otwarcia z podgrzaną pierwszą stroną albo PDF_NET_OPT_NO_WARMING, aby otwierać wyłącznie na żądanie
ChunkSizeTylko Delphi; wyrównana ziarnistość pobierania zakresów, przy czym zero wybiera 64 KiB
CacheLimitBytesTylko 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
CoalesceWindowMSTylko 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

>0Uchwyt dokumentu o bezpośrednim dostępie
0Nie 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