THotPDF.DecodeLoadedStreamToStream-Methode

Dekodiert einen geladenen PDF-Stream durch seine vollständige Filterkette und schreibt die finale Stufe direkt in einen aufrufereigenen Stream

Deklaration

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

Unit

HPDFDoc

Parameter

NameZweck
AStreamGeladenes THPDFStreamObject, dessen /Filter-Eintrag dekodiert wird
OutputZielobjekt des Aufrufers, das dekodierte Bytes an seiner aktuellen Position aufnimmt
CancellationTokenOptionale kooperative Abbruchsteuerung, geteilt mit eigenen Filterstufen
InfoNimmt Eingabe- und Ausgabe-Bytezahlen, Filteranzahl, Tiefe, Status, den fehlgeschlagenen Filter und Diagnosen auf

Rückgabewert

Gibt nur dann True zurück, wenn jede angeforderte Stufe erfolgreich ist

Verwendungshinweise

Diagnose

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

Status unterscheidet ungültige Streams und Filter, Filter-Anzahl- und Tiefenlimits, zyklische Referenzen, rekursive Streams, nicht unterstützte Filter, Budget-Fehlschläge und Decoder-Fehlschläge

Beispiel

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;

Verwandte APIs