如何从angular6的byteArraay下载PDF?

时间:2018-09-25 07:14:15

标签: javascript typescript angular5 angular6

我目前在angular 6工作。我必须从bytearray下载pdf文件。 当我尝试下载pdf文件时。它下载,但当我打开它。它显示错误。请帮助我。

在download.component.ts中,我得到了两个值的响应。第一个pdfname,第二个pdfbytearray。我从组件响应中获取这些值。

示例响应:

{
pdfName: "test.pdf",
pdfByteArray: "JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC9Qcm9kdWNlcij"
}

download.service.ts:

    generatePdf(id) {
    const httpOptions = {
     'responseType': 'arraybuffer' as 'json'
    };
    return this.http.post<any>(URL.BASE_URL + 'application/generate?id='+ id,
     { httpOptions },
    );
   }

download.component.ts:

import { saveAs } from 'file-saver/FileSaver';
generatePdf() {
    this.downloadApiService.generatePdf('4')
    .subscribe( pdf => {
      console.log('pdf response: ', pdf);    
      var mediaType = 'application/pdf';
      var blob = new Blob([pdf.pdfByteArray], {type: mediaType});
      let fileName = pdf.pdfName;
      saveAs(blob, fileName);
    }, err => {
      console.log('Pdf generated err: ', JSON.stringify(err));
    });
  }

0 个答案:

没有答案