如何将字节数组转换为pdf并下载

tex*_*697 2 javascript blob filesaver.js

我正在尝试做一个简单的任务,将 http 响应下载到 pdf。我正在生成一个 pdf 文件,但出现“无法打开 PDF”的错误。

这是响应的样子。 截屏

这就是我正在做的事情。

 let blob = new Blob([response.data], { type: 'application/pdf' })
 FileSaver.saveAs(blob, 'foo.pdf')
Run Code Online (Sandbox Code Playgroud)

小智 7

响应中的字符串似乎是 Base-64 编码的(参考小提琴)。您可以使用fetch()(或XMLHttpRequest()对于较旧的浏览器)对其进行解码:

fetch("data:application/pdf;base64," + response.data)
  .then(function(resp) {return resp.blob()})
  .then(function(blob) {
    FileSaver.saveAs(blob, 'foo.pdf')
  });
Run Code Online (Sandbox Code Playgroud)