Metode THotPDF.DecodeLoadedStreamToStream

Mendekode stream PDF yang dimuat melalui rantai filter lengkapnya dan menulis tahap akhir langsung ke stream milik pemanggil

Deklarasi

function DecodeLoadedStreamToStream(AStream: THPDFStreamObject;
  Output: TStream; out Info: THPDFDecodePipelineInfo): Boolean; overload;
function DecodeLoadedStreamToStream(AStream: THPDFStreamObject;
  Output: TStream; CancellationToken: THPDFCancellationToken;
  out Info: THPDFDecodePipelineInfo): Boolean; overload;

Unit

HPDFDoc

Parameter

NamaTujuan
AStreamTHPDFStreamObject yang dimuat yang entri /Filter-nya didekode
OutputTujuan milik pemanggil yang menerima byte terdekode pada posisinya saat ini
InfoMenerima jumlah byte masukan dan keluaran, jumlah filter, kedalaman, status, filter yang gagal, dan diagnostik
InfoMenerima hitungan byte input dan output, hitungan filter, kedalaman, status, filter yang gagal, dan diagnostik

Nilai balik

Mengembalikan True hanya ketika setiap tahap yang diminta berhasil

Catatan penggunaan

Diagnostik

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

Status membedakan stream dan filter yang tidak valid, batas jumlah-filter dan kedalaman, referensi siklik, stream rekursif, filter yang tidak didukung, kegagalan anggaran, dan kegagalan dekoder

Contoh

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 terkait