THotPDF.DecodeLoadedStreamToStream Method

Dekoduje wczytany strumień PDF przez jego pełny łańcuch filtrów i zapisuje etap końcowy bezpośrednio do strumienia należącego do wywołującego

Deklaracja

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

Jednostka

HPDFDoc

Parametry

NazwaPrzeznaczenie
AStreamLoaded THPDFStreamObject whose /Filter entry is decoded
OutputCaller-owned destination that receives decoded bytes at its current position
CancellationTokenOptional cooperative cancellation shared with custom filter stages
InfoReceives input and output byte counts, filter counts, depth, status, failing filter, and diagnostics

Wartość zwracana

Zwraca True tylko wtedy, gdy każdy żądany etap kończy się powodzeniem

Uwagi dotyczące użycia

Diagnostyka

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

Status rozróżnia nieprawidłowe strumienie i filtry, limity liczby filtrów i głębokości, odwołania cykliczne, strumienie rekurencyjne, nieobsługiwane filtry, niepowodzenia budżetu i niepowodzenia dekoderów

Przykład

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;

Powiązane API