Método THotPDF.DecodeLoadedStreamToStream

Descodifica um fluxo PDF carregado através da sua cadeia de filtros completa e escreve a fase final diretamente para um fluxo pertencente ao chamador

Declaração

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

Unit

HPDFDoc

Parâmetros

NomeObjetivo
AStreamTHPDFStreamObject carregado cuja entrada /Filter é descodificada
OutputDestino da propriedade de quem chama, que recebe os bytes descodificados na posição atual
OutputDestino pertencente ao chamador que recebe os bytes descodificados na sua posição atual
InfoRecebe contagens de bytes de entrada e saída, contagens de filtros, profundidade, estado, filtro falhado e diagnósticos

Valor devolvido

Devolve True apenas quando todas as fases pedidas têm sucesso

Notas de utilização

Diagnósticos

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

Status distingue fluxos e filtros inválidos, limites de contagem de filtros e de profundidade, referências cíclicas, fluxos recursivos, filtros não suportados, falhas de orçamento e falhas de descodificador

Exemplo

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;

APIs relacionadas