Škálovateľné načítavanie PDF s náhodným prístupom
HotPDF udržiava veľké načítané súbory responzívne oneskorením kópií streamov a syntaktickou analýzou komprimovaných objektov, kým nie sú dáta potrebné
Okná streamov zálohovaných súborom
Nešifrované dokumenty otvorené pomocou LoadFromFile si ponechajú nemenné telá streamov ako rozsahy zdrojového súboru
Čítania vyhľadajú požadovaný rozsah a okamžite uvoľnia handle zdroja, takže pôvodný súbor zostáva nahraditeľný vo Windows
OpenLoadedStreamSourceSlice vytvorí nezávislý pohľad len na čítanie cez nefiltrovaný zdrojový rozsah bez kopírovania alebo materializácie lenivého streamu
Prvý zápis materializuje stream v pamäti, keď je na alebo pod LoadedStreamMemoryThreshold, alebo vo vlastnom dočasnom súbore, keď je väčší
Lenivé objektové streamy
Každý dekódovaný kontajner /Type /ObjStm je indexovaný autoritatívnym číslom objektu xref bez syntaktickej analýzy každého člena počas otvorenia
Rozlíšenie katalógu, stromu stránok a neskorších odkazov materializuje jednotlivých členov raz a znovu použije ich rozparsované objekty
Úplné prepísanie automaticky materializuje každého zostávajúceho člena, zatiaľ čo nezmenené uloženie zálohované súborom môže zachovať pôvodné bajty priamo
ReleaseDecodedStreamsAfterSave uvoľní kontajner objektového streamu až po materializácii každého indexovaného člena a ReleaseLoadedDecodedStreamCaches vystavuje rovnaký bezpečný prechod uvoľnenia na požiadanie
Vlastný náhodný prístup
Odvodte od THPDFRandomAccessSource a implementujte GetSize plus ReadAt pre načítanie z HTTP rozsahov, databáz, archívov alebo virtuálneho úložiska; prepíšte IsRangeAvailable, keď môžu stiahnuté rozsahy prísť nezávisle
LoadFromRandomAccessSource prispôsobí zdroj seekovateľnému parseru HotPDF a môže voliteľne vlastniť zdroj počas životnosti dokumentu
Progresívna linearizovaná dostupnosť
GetProgressiveLinearizedLoadInfo číta iba ohraničenú sondu prvého objektu, validuje /L, /O, /E, /N a /T a hlási rozsahy prefixu prvej stránky a chvosta hlavného xref potrebné pre skoré zobrazenie
ReadProgressiveLinearizedFirstPageSection skopíruje dostupnú sekciu prvej stránky v blokoch po 64 KiB po prítomnosti oboch požadovaných rozsahov, pričom zrušenie operácie zostáva aktívne medzi čítaniami
THPDFProgressiveLoadStatus odlišuje nedostupnú hlavičku, nelinearizovaný alebo neplatný zdroj, chýbajúce rozsahy prvej stránky, pripravenosť prvej stránky a pripravenosť kompletného dokumentu
Paralelná optimalizácia obrazov a streamov s vysokým pomerom
OptimizeLoadedStreams môže vybrať frmHighRatio na vyskúšanie štyroch deterministických zlib stratégií pri maximálnej kompresii a zachovanie najmenšieho štandardmi kompatibilného Flate streamu
OptimizeLoadedImagesParallel dekóduje spôsobilé obrazové streamy do ohraničeného adaptívneho úložiska, komprimuje až do limitu workerov volajúceho a potvrdzuje výsledky sériovo v poradí zdrojových objektov iba vtedy, keď sa dosiahne požadovaná úspora bajtov
Diagnostika
GetLoadedStreamCacheInfohlási počty streamov zálohovaných zdrojom, materializovaných v pamäti a materializovaných na diskuGetLoadedObjectStreamCacheInfohlási indexovaných a materializovaných členov, zásahy a minutenia vyrovnávacej pamäte a zadržané dekódované bajtyGetLoadedObjectLifecycleStatisticsoddeľuje čisté, špinavé, uvoľnené a must-write objekty
Pozri tiež: LoadFromRandomAccessSource, GetProgressiveLinearizedLoadInfo, ReadProgressiveLinearizedFirstPageSection, OptimizeLoadedImagesParallel, OpenLoadedStreamSourceSlice, SourceBacked, LoadedStreamMemoryThreshold, ReleaseLoadedDecodedStreamCaches, DecompressAllObjectStreams