THotPDF.DecodeLoadedStreamToStream メソッド

読み込んだ PDF ストリームを完全なフィルターチェーンでデコードし、最終ステージを呼び出し側が所有するストリームに直接書き込みます

宣言

function DecodeLoadedStreamToStream(AStream: THPDFStreamObject; Output: TStream; out Info: THPDFDecodePipelineInfo): boolean;

ユニット

HPDFDoc

パラメータ

名前目的
AStream/Filter エントリがデコードされた読み込み済み THPDFStreamObject
Output現在位置でデコード済みバイトを受け取る、呼び出し側所有の出力先
CancellationTokenカスタムフィルタステージと共有する、省略可能な協調キャンセル
Info入出力バイト数・フィルタ数・深度・ステータス・失敗したフィルタ・診断情報を受け取ります

戻り値

要求されたすべてのステージが成功した場合にのみ True を返します

使用上の注意

診断

THPDFDecodePipelineInfo = record
  Status: THPDFDecodePipelineStatus;
  InputBytes: Int64;
  OutputBytes: Int64;
  FilterCount: Integer;
  AppliedFilterCount: Integer;
  PipelineDepth: Integer;
  StopBeforeLast: Boolean;
  FailedFilter: AnsiString;
  Diagnostic: AnsiString;
end;

Status は無効なストリームとフィルター、フィルター数と深さの制限、循環参照、再帰ストリーム、サポートされないフィルター、予算失敗、デコーダー失敗を区別します

例

Output := TFileStream.Create('payload.bin', fmCreate);
try
  if not PDF.DecodeLoadedStreamToStream(StreamObject, Output, Info) then
    raise Exception.Create(String(Info.Diagnostic));
finally
  Output.Free;
end;

関連 API