Angular 4: Converter Response da API para PDF

votos
2

digite

Olá a todos, eu tenho um problema quando tento converter resposta de API, eu tenho um erro

O corpo do pedido não é quer uma bolha ou de um tampão de matriz

Aqui está o meu código

app.service.ts

downloadPDF(id_booking): any {
  let headers = new Headers();
  this.createAuthorizationHeader(headers);
  return this.http.post('https://localhost:1210/v1/user/booking/eticket/'+id_booking, {responseType: ResponseContentType.Blob}, {headers: headers}).map(
  (res) => {
    console.log(res)
    return new Blob([res.blob()], { type: 'application/pdf' })
  })
}

pdf.component.ts

this.appService.downloadPDF(booking._id).subscribe(
    (res) => {
    saveAs(res, myPDF.pdf); 
    var fileURL = URL.createObjectURL(res);
    window.open(fileURL);
    }
Publicado 08/11/2018 em 06:43
fonte usuário
Em outras línguas...                            


2 respostas

votos
0

@ user184994

digite descrição da imagem aqui

Eu ainda tenho o mesmo erro ..

Aqui está o código backend

pdf.create(document, config)
        .then(file => {
                var buffer = Buffer.from(file);
                res.end(buffer,'binary')
        })
        .catch(error => {
                console.error(error);
})
Respondeu 08/11/2018 em 08:31
fonte usuário

votos
0

Seu backend está enviando uma string.

Supondo que você está usando expresso, em vez de

res.send(arr)

Você deveria usar

res.send(buffer);

Isso irá garantir que os dados binário é enviado

Respondeu 08/11/2018 em 08:02
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more