THPDFRandomAccessSource クラス
THotPDF.LoadFromRandomAccessSource が TStream 実装を必要とせずに、呼び出し側が定義したシーク可能なバイトストアから PDF を読み込めるようにする抽象基底クラスです
宣言
THPDFRandomAccessSource = class
public
function GetSize: Int64; virtual; abstract;
function ReadAt(Offset: Int64; var Buffer;
Count: Longint): Longint; virtual; abstract;
end;
ユニット
HPDFDoc
メンバー
| 名前 | 目的 |
|---|---|
GetSize | バッキングストアの安定したバイト長を返します |
ReadAt | Offset から始まる Count バイトを Buffer に読み込みます |
使用上の注意
- サブクラスを派生させ、両方の抽象メソッドをオーバーライドして、HotPDF を HTTP 範囲リクエスト、データベース BLOB、圧縮アーカイブ、暗号化ボリューム、またはオフセットでバイトを供給できる任意の仮想ストレージに適応させます
GetSizeは読み込みの存続期間中、安定した負でないバイト長を返さなければなりません。HotPDF はこのソースをシークすることでクロスリファレンステーブルとオブジェクトストリームを解析しますReadAtは実際に転送されたバイト数(ゼロからCountまで)を返します。パーサーは文書化されたファイル終端でのショートリードをエラーではなくストリーム終端として扱います- 読み込んだドキュメントが使用されている間、ソースは有効なままでなければなりません。LoadFromRandomAccessSource に
OwnsSource = Trueを渡して、HotPDF にソースを自動的に解放させます