THotPDF.DecodeLoadedStreamToStream metódus

Dekódol egy betöltött PDF-adatfolyamot a teljes szűrőláncán keresztül, és az utolsó fázist közvetlenül egy hívó által birtokolt adatfolyamba írja

Deklaráció

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

Egység

HPDFDoc

Paraméterek

NévCél
AStreamBetöltött THPDFStreamObject, amelynek /Filter bejegyzése dekódolásra kerül
Output
OutputHívó által birtokolt cél, amely dekódolt bájtokat fogad az aktuális pozíciójában
InfoBemeneti és kimeneti bájtszámokat, szűrőszámokat, mélységet, állapotot, hibás szűrőt és diagnosztikát fogad

Visszatérési érték

Csak akkor ad vissza True értéket, ha minden kért fázis sikeres

Használati megjegyzések

Diagnosztika

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

A Status megkülönbözteti az érvénytelen adatfolyamokat és szűrőket, a szűrőszám- és mélység-korlátokat, a ciklikus hivatkozásokat, a rekurzív adatfolyamokat, a nem támogatott szűrőket, a költségvetési hibákat és a dekóder-hibákat

Példa

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;

Kapcsolódó API-k