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

SourceSizeAutoritativní celková velikost zdroje v bajtech
ReadCallbackZpětné volání, které kopíruje bajty pro absolutní ofset zdroje
PasswordHeslo k otevření PDF, nebo prázdný řetězec pro nešifrovaný dokument
ChunkSizeZarovnaná granularita fetchování rozsahů; nula vybere výchozích 64 KiB a hodnoty pod 4096 rovněž použijí výchozí
CacheLimitBytesMaximum 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
CoalesceWindowMSOkno sběru pro první neocacheovaný chunk každého absolutního čtení; výchozí jsou 2 milisekundy a nula počáteční prodlevu vypne
AvailabilityCallbackVolitelný netahající test bajtových rozsahů už přítomných v progresivním úložišti

Návratové hodnoty

0Argumenty zdroje byly neplatné, nebo se PDF nepodařilo načíst; prohlédněte LastErrorCode
1Dokument 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