管理在javascript中使用Blob下载PDF流

时间:2017-02-08 09:39:32

标签: javascript pdf blob

网页(正面)正在调用发送PDF流作为响应的服务: 这是前面的代码:

'click .btn': function (event) {
   /.../
   event.preventDefault();
   Http.call(params, (err, res) => { // callback
     if (err) console.log(err); // nothing
     console.log({ res }); // print below result
     const blob = new Blob(
       [res.content],
       { type: `${res.headers['content-type']};base64` }
     );
     saveAs(blob, res.headers['content-disposition'].slice(21));
   });
 }

以下是来自服务器的响应(console.log(res)):在控制台中打印的{res:Object}。

content: "%PDF-1.4↵1 0 obj↵<<↵/Title (��)↵/Creator (��)↵/Prod ..... lot of characters....%"
data: null,
statusCode: 200,
headers: {
  connection: "close",
  content-disposition: "attachment; filename=myDoc.pdf"
  content-type: "application/pdf",
  date: "date",
  transfer-encoding: "chunked",
  x-powered-by: "Express"
}

然而,下载的PDF没有任何内容,它是完整的空白,如损坏(但我可以看到字符串中的内容)。它适用于CSV路由(我将csv作为流发送并使用相同的方法下载并获取数据)。

我认为有一些格式为%PDF ...%但是我找不到东西。 注意:对于邮递员,它可以工作,我的PDF保存,页面不是空白,我得到了数据。所以前面有些东西我做得不对。 我也尝试过:

  const fileURL = URL.createObjectURL(blob);
  window.open(fileURL); // instead of saveAs

但结果是相同的(但在另一个标签而不是保存的PDF)空白页。 有任何想法吗 ?

0 个答案:

没有答案