Chargement de PDF évolutif et à accès aléatoire
HotPDF maintient la réactivité des gros fichiers chargés en différant les copies de flux et l’analyse des objets compressés jusqu’à ce que les données soient requises
Fenêtres de flux sauvegardées par fichier
Les documents non chiffrés ouverts avec LoadFromFile conservent les corps de flux immuables comme des plages du fichier source
Les lectures se positionnent sur la plage requise et libèrent immédiatement le descripteur source, de sorte que le fichier d’origine reste remplaçable sous Windows
La première écriture matérialise le flux en mémoire lorsqu’il est inférieur ou égal à LoadedStreamMemoryThreshold, ou dans un fichier temporaire propriétaire lorsqu’il est plus grand
Flux d’objets paresseux
Chaque conteneur /Type /ObjStm décodé est indexé par numéro d’objet xref faisant autorité sans analyser chaque membre à l’ouverture
Le Catalog, l’arborescence des pages et la résolution ultérieure des liens matérialisent des membres individuels une fois et réutilisent leurs objets analysés
Une réécriture complète matérialise automatiquement chaque membre restant, tandis qu’un enregistrement sauvegardé par fichier inchangé peut préserver directement les octets d’origine
Accès aléatoire personnalisé
Dérivez de THPDFRandomAccessSource et implémentez GetSize plus ReadAt pour charger depuis des plages HTTP, des bases de données, des archives ou un stockage virtuel
LoadFromRandomAccessSource adapte la source à l’analyseur à positionnement d’HotPDF et peut, au choix, posséder la source pour la durée de vie du document
Diagnostics
GetLoadedStreamCacheInfosignale les comptes de flux sauvegardés par source, matérialisés en mémoire et matérialisés sur disqueGetLoadedObjectStreamCacheInfosignale les membres indexés et matérialisés, les succès et échecs de cache, ainsi que les octets décodés conservés
Voir aussi : LoadFromRandomAccessSource, LoadedStreamMemoryThreshold, DecompressAllObjectStreams