スケーラブルでランダムアクセスな PDF 読み込み
HotPDF は、データが必要になるまでストリームのコピーと圧縮オブジェクトの解析を遅延させることで、読み込んだ大きなファイルの応答性を維持します
ファイルベースのストリームウィンドウ
LoadFromFile で開かれた暗号化されていないドキュメントは、不変のストリーム本体をソースファイルの範囲として保持します
読み取りは必要な範囲をシークしてソースハンドルを即座に解放するため、Windows 上で元のファイルは置き換え可能なままです
最初の書き込みは、LoadedStreamMemoryThreshold 以下の場合はストリームをメモリにマテリアライズし、それより大きい場合は所有権を持つ一時ファイルにマテリアライズします
遅延オブジェクトストリーム
デコードされた各 /Type /ObjStm コンテナは、オープン中にすべてのメンバーを解析することなく、権威ある xref オブジェクト番号でインデックス化されます
カタログ、ページツリー、およびその後のリンク解決は個々のメンバーを一度だけマテリアライズし、解析済みオブジェクトを再利用します
完全再書き込みは残りのすべてのメンバーを自動的にマテリアライズし、ファイルベースの変更のない保存は元のバイトを直接保持できます
カスタムランダムアクセス
THPDFRandomAccessSource から派生させ、GetSize と ReadAt を実装して、HTTP 範囲、データベース、アーカイブ、または仮想ストレージから読み込みます
LoadFromRandomAccessSource はソースを HotPDF のシーク可能なパーサーに適応させ、ドキュメントの存続期間中ソースを所有することもできます
診断
GetLoadedStreamCacheInfoはソースベース、メモリマテリアライズ、ディスクマテリアライズのストリーム数を報告しますGetLoadedObjectStreamCacheInfoはインデックス化およびマテリアライズされたメンバー、キャッシュヒットとミス、保持されたデコード済みバイト数を報告します
関連項目: LoadFromRandomAccessSource, LoadedStreamMemoryThreshold, DecompressAllObjectStreams