LoadFromRangeSource
Správa dokumentů, výkon
Popis
Načítá a vybírá PDF přes synchronní zpětné volání náhodného přístupu, takže HTTP klienti, databáze, object store i vlastní poskytovatelé úložišť dodají jen bajtové rozsahy, jichž se parser dotkne
Syntaxe
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;Parametry
| SourceSize | Autoritativní celková velikost zdroje v bajtech |
|---|---|
| ReadCallback | Zpětné volání, které kopíruje bajty pro absolutní ofset zdroje |
| Password | Heslo k otevření PDF, nebo prázdný řetězec pro nešifrovaný dokument |
| ChunkSize | Zarovnaná granularita fetchování rozsahů; nula vybere výchozích 64 KiB a hodnoty pod 4096 rovněž použijí výchozí |
| CacheLimitBytes | Maximum bajtů zadržovaných napříč nejdéle nepoužívanými okny; nula vybere výchozích 4 MiB a hodnoty pod jeden chunk se zvednou na jeden chunk |
| CoalesceWindowMS | Okno sběru pro první neocacheovaný chunk každého absolutního čtení; výchozí jsou 2 milisekundy a nula počáteční prodlevu vypne |
| AvailabilityCallback | Volitelný netahající test bajtových rozsahů už přítomných v progresivním úložišti |
Návratové hodnoty
| 0 | Argumenty zdroje byly neplatné, nebo se PDF nepodařilo načíst; prohlédněte LastErrorCode |
|---|---|
| 1 | Dokument byl načten a vybrán |
Poznámky
Čtecí zpětné volání obdrží absolutní ofsety počítané od nuly a nesmí zapsat víc než Count bajtů do Buffer; vrací počet zapsanýchCíl zpětného volání a jeho podkladové úložiště musí zůstat platné do zavření načteného dokumentu, protože vykreslování stránek, extrakce i ukládání mohou později vyžádat další rozsahyVolání jsou synchronní a mohou přicházet v nesekvenčním pořadí; zkrácený výsledek se na fyzickém konci zdroje přijme, zatímco neočekávaná nula způsobí selhání načítání či aktuální odložené operaceJe-li přiřazeno
AvailabilityCallback, vracíte nenulovou hodnotu jen tehdy, když lze kompletní požadovaný rozsah číst okamžitě bez přenosu či blokujícího I/OCacheovaný rozsah je dostupný bez ohledu na výsledek zpětného volání; zpětné volání
Nil zachovává synchronní chování tím, že každý platný rozsah zdroje považuje za dostupnýZarovnané chunky zabraňují duplicitním přenosům při překrývajících se čteních a bajtový rozpočet ohraničuje zadržovaný payload nezávisle na velikosti dokumentuOdložená čtení objektů a segmentů používají absolutní ofsety, takže souběžná práce sdílí požadavky na týž chunk a slučuje sousední zařazené chunky beze změny pozicového kurzoru streamuZdrojová zpětná volání se serializují a nesmí rekurzivně číst ze stejného streamu rozsahůPřes
GetRangeSourceDataAvailability
GetRangeSourceCacheInfo otestujete závislosti stránky, formuláře či nepřímých objektů, aniž byste četli rozsahy hlášené jako chybějícíAktivní cache sledujete nebo měníte přes SetRangeSourceCacheLimit, ClearRangeSourceCache a