THotPDF.PrepareLoadedFormDataRevisionToStream

元のドキュメントを変更せずに、実際の読み込み済みグラフのプライベートなリビジョンを準備します

宣言

procedure PrepareLoadedFormDataRevisionToStream(Destination: TStream;
  const Password: AnsiString; MaxWorkingBytes, MaxOutputBytes: Int64;
  MaxObjects: Integer; Checkpoint: TNotifyEvent = nil;
  OriginalSource: TStream = nil);

動作

このメソッドは元のリビジョンを排他生成したプライベートファイルへコピーし、別のインクリメンタルドキュメントを読み込み、オブジェクト番号と世代で意味的なオブジェクトグラフを比較し、実際の未確定変更をクローンして、結果の候補を現在の宛先位置に書き込みます

テキスト値、既存の外観、無関係な未確定カタログ変更、間接参照、ストリーム内容、新しいグラフオブジェクトが準備に参加します。PDF 名は 1 回だけデコードされ、意味的に重複するディクショナリー名は無効です

変更のないグラフは、空のインクリメンタルクロスリファレンスセクションを追加せずに元のバイトをそのままコピーします。変更されたグラフは元のバイト接頭辞全体を保持し、現在のリビジョンを追記します

暗号化されたリビジョンは、元の暗号化ディクショナリーと鍵を保持します。Password は元のリビジョンを認証できなければならず、UTF-8 バイトとして渡します

OriginalSource を渡すときは、暗号文と署名済みバイトを含め、このドキュメントの読み込み元である完全で不変の元リビジョンでなければなりません。位置は成功時にも失敗時にも復元されます

OriginalSource がないとき、このメソッドは CopyLoadedSourceToStream を使います。これは外部から変更可能な借用ソースを不変スナップショットに変えるものではないため、呼び出し側が読み込み時のバイトを正確に保持する必要があります

MaxWorkingBytes は 1 MiB 以上、MaxOutputBytes と MaxObjects は正の値でなければなりません。ソースコピー、オブジェクト比較、メモリ常駐およびスピルされたクローンデータ、出力長には有限の上限があります

OperationCancellationToken と Checkpoint はコピーと比較の間にポーリングされます。コピーは 64 KiB 以下のブロックで行われます。準備に失敗すると宛先に部分的なバイトが残ることがあり、呼び出し側が破棄する必要があります

この低レベルメソッドはグラフリビジョンを準備するだけで、DocMDP や FieldMDP の下での未確定変更を承認しません。フォーム更新を公開する前に署名ポリシーを認証するには、THPDFWindowsFormDataTransaction を使ってください

準備の成否にかかわらず、元の THotPDF グラフ、ソースの所有権、未確定変更、設定はそのまま保たれます。一時ファイルはメソッドの終了時にクローズされ、削除されます

関連トピック

CopyLoadedSourceToStream、THPDFWindowsFormDataTransaction、Windows FDF/XFDF 交換