THotPDF.DecodeLoadedStreamToStream Method

Iškoduoja įkeltą PDF srautą per visą jo filtrų grandinę, o paskutiniąją pakopą rašo tiesiogiai į kvietėjo valdomą srautą

Deklaracija

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

Parametrai

PavadinimasPaskirtis
AStreamĮkeltasis THPDFStreamObject, kurio /Filter įrašas iškoduotas
OutputKvietėjo valdoma paskirties vieta, gaunanti iškoduotus baitus dabartinėje pozicijoje
CancellationTokenNeprivaloma bendradarbiška atšaukimo galimybė, bendra su pasirinktiniais filtro etapais
InfoPriima įvesties ir išvesties baitų skaičius, filtrų skaičius, gylį, būseną, nesėkusį filtrą ir diagnostiką

Grąžinama reikšmė

Grąžina True tik tada, kai visos pageidautos pakopos pavyksta

Naudojimo pastabos

Diagnostika

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 atskiria netinkamus srautus ir filtrus, filtrų skaičiaus bei gylio ribas, ciklines nuorodas, rekursyviuosius srautus, nepalaikomus filtrus, biudžeto nesėkmes, dekoderių nesėkmes, pasirinktines nesėkmes, atšaukimą ir pozicionavimo sutarties pažeidimus

Pavyzdys

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;

Susijusios API