Méthode THotPDF.DecodeLoadedStreamToStream

Décode un flux PDF chargé à travers sa chaîne de filtres complète et écrit l’étape finale directement dans un flux propriétaire de l’appelant

Déclaration

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

Paramètres

NomRôle
AStreamTHPDFStreamObject chargé dont l’entrée /Filter est décodée
OutputCaller-owned destination that receives decoded bytes at its current position
OutputDestination propriétaire de l’appelant qui reçoit les octets décodés à sa position courante
InfoReçoit les comptes d’octets d’entrée et de sortie, les comptes de filtres, la profondeur, l’état, le filtre défaillant et les diagnostics

Valeur de retour

Renvoie True uniquement lorsque chaque étape demandée réussit

Notes d’utilisation

Diagnostics

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

Status distingue les flux et filtres invalides, les limites de compte de filtres et de profondeur, les références cycliques, les flux récursifs, les filtres non pris en charge, les échecs de budget et les échecs de décodeur

Exemple

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;

API associées