THotPDF.DecodeLoadedStreamToStream Method

Afkoder en indlæst PDF-stream gennem dens komplette filterkæde og skriver det sidste trin direkte til en kalder-ejet stream

Deklaration

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

Enhed

HPDFDoc

Parametre

NavnFormål
AStreamLoaded THPDFStreamObject whose /Filter entry is decoded
OutputKalder-ejet destination, der modtager afkodede bytes ved sin aktuelle position
CancellationTokenOptional cooperative cancellation shared with custom filter stages
InfoModtager input- og output-byte-optælling, filterantal, dybde, status, fejlende filter og diagnostik

Returværdi

Returns True only when every requested stage succeeds

Brugsnoter

Diagnostics

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

Status skelner ugyldige streams og filtre, filterantal- og dybdegrænser, cykliske referencer, rekursive streams, ikke-understøttede filtre, budgetfejl, dekoderfejl, brugerdefinerede fejl, annullering og overtrædelser af seek-kontrakten

Eksempel

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;

Relaterede API'er