LoadFromRangeSource
Dokumentų valdymas, našumas
Aprašymas
Įkelia ir pažymi PDF per sinchroninį atsitiktinės prieigos atgalinį iškvietimą, leisdamas HTTP klientams, duomenų bazėms, objektų saugykloms ir pasirinktinėms saugojimo paslaugoms pateikti tik tuos baitų diapazonus, kuriuos liečia analizatorius
Sintaksė
Delphi
Function TPDFlib.LoadFromRangeSource(SourceSize: Int64;
ReadCallback: TPDFlibRangeReadEvent; Const Password: WideString;
ChunkSize: LongInt= 0; CacheLimitBytes: Int64= 0;
CoalesceWindowMS: Cardinal= PDF_NET_DEFAULT_COALESCE_WINDOW_MS;
AvailabilityCallback: TPDFlibRangeAvailabilityEvent= Nil): Integer;Parametrai
| SourceSize | Autoritetingasis bendrasis šaltinio dydis baitais |
|---|---|
| ReadCallback | Atgalinio iškvietimo funkcija, kopijuojanti baitus absolučiajam šaltinio poslinkiui |
| Password | PDF atvėrimui naudojamas slaptažodis arba tuščia eilutė nešifruotam dokumentui |
| ChunkSize | Lygiuotoji diapazono parsiuntimo granuliarumas; nulis pasirenka numatytąsias 64 KiB, o mažesnės nei 4096 reikšmės taip pat naudoja numatytąją |
| CacheLimitBytes | Didžiausias seniausiai naudotųjų langų bendras laikomasis baitų skaičius; nulis pasirenka numatytąsias 4 MiB, o mažesnės nei vienas gabalas reikšmės pakeliamos iki vieno gabalo |
| CoalesceWindowMS | Kiekvieno absoliutaus skaitymo pirmojo nepodėliuoto gabalo rinkimo langas; 2 milisekundės yra numatytosios, o nulis išjungia pradinę delsą |
| AvailabilityCallback | Pasirinktinis neparsiunčiantis baitų diapazonų, jau esančių pažangiojoje saugykloje, tikrinimas |
Grąžinamos reikšmės
| 0 | Šaltinio argumentai buvo netinkami arba PDF nepavyko įkelti; patikrinkite LastErrorCode |
|---|---|
| 1 | Dokumentas buvo įkeltas ir pažymėtas |
Pastabos
Skaitymo atgalinis iškvietimas gauna absolučiuosius nuo 0 skaičiuojamus poslinkius ir privalo rašyti ne daugiau kaip Count baitų į Buffer, grąžindamas įrašytąjį skaičiųAtgalinio iškvietimo paskirtis ir jos paremtoji saugykla privalo išlikti galiojančios, kol užvertas įkeltasis dokumentas, nes puslapių atvaizdavimas, išgava ir išsaugojimas vėliau gali pageidauti papildomų diapazonųKvietimai sinchroniniai ir gali ateiti nenuoseklia tvarka; trumpasis rezultatas priimamas fizinėje šaltinio pabaigoje, o netikėtas nulinis rezultatas sukelia įkėlimo arba dabartinės atidėtosios operacijos nesėkmęKai
AvailabilityCallback priskirtas, grąžinkite nenulinę reikšmę tik tada, kai visas pageidaujamasis diapazonas gali būti skaitomas iš karto be transporto arba blokuojančiosios I/OPodėliuotasis diapazonas prieinamas nepaisant atgalinio iškvietimo rezultato;
Nil atgalinis iškvietimas išlaiko sinchroninę elgseną laikydamas kiekvieną galiojantįjį šaltinio diapazoną prieinamuLygiuotieji gabalai išvengia dvigubų transporto parsiuntimų besikertantiems skaitymams, o baitų biudžetas riboja laikomąją naštą nepriklausomai nuo dokumento dydžioAtidėtieji objektų ir segmentų skaitymai naudoja absolučiuosius poslinkius, todėl lygiagretus darbas bendrina to paties gabalo užklausas ir sujungia gretimus eilėje esančius gabalus nekeisdamas pozicinio srauto žymeklioŠaltinio atgalinieji iškvietimai serializuojami ir negali rekursyviai skaityti iš to paties diapazono srautoNaudokite
GetRangeSourceDataAvailability
GetRangeSourceCacheInfo puslapio, formos arba netiesioginių objektų priklausomybėms tikrinti neskaitydami neprieinamais praneštųjų diapazonųNaudokite SetRangeSourceCacheLimit, ClearRangeSourceCache ir