THotPDF.CopyLoadedSourceToStream

ソース位置を保持する上限付きリードで、ロード済み PDF の元バイト列をコピーします

宣言

procedure CopyLoadedSourceToStream(Destination: TStream;
  MaxBytes: Int64; Checkpoint: TNotifyEvent = nil);

動作

この HPDFDoc メソッドは、保持された元ソースのバイト列を、現在のオブジェクトグラフを保存・正規化せずにコピーし、成功時も失敗時も借り受けたソースストリームの位置を復元します

暗号化ファイルのロードでは、パスワードによる復号が通常の保存ショートカットを無効化した後も、元ファイル読み出しハンドルが別に保持されます。このメソッドは元の暗号文をコピーし、GetLoadedSourceFileSize はそのサイズを報告します

保持された元ハンドルは、再ロード・破棄・対応済みのインプレースインクリメンタル公開の際に解放され、物理ソースファイルのエイリアスチェックにも参加します

MaxBytes は正の値で、ソース全体の長さを含みます。それより大きいソースでは、最初の書き込みの前に EHPDFIncrementalOutputBudget が発生します

Destination は nil 以外で、ロード済みストリームや同じ実ファイル(ハードリンクを含む)とエイリアスしてはなりません。元ソースが利用できない場合、EInvalidOpException が発生します

OperationCancellationToken と Checkpoint は、読み出しの前と、最大 64 KiB ブロック単位の読み出し中にチェックされます。checkpoint には THotPDF インスタンスが渡されます

メソッドは既存内容をクリアせず、Destination の現在位置に書き込みます。キャンセル・読み出しエラー・書き込み先の失敗で部分的なコピーが残ることがあるため、呼び出し元は失敗した候補を破棄してください

このメソッドは未解決のオブジェクト変更を直列化せず、ロード済みグラフが生のソースとまだ一致していることの保証も行いません

関連トピック

インクリメンタル PFX 署名, THotPDF.SaveIncrementalUpdate