如何使用浏览器的 PDF 查看器打开 PDF Blob 而不是下载?

ksp*_*rin 13 javascript pdf

我有ArrayBuffer一个 PDF 文件的数据,我想使用浏览器的内置 PDF 查看器打开它。

这是我正在使用的代码:

const blob = new Blob([pdfBuffer], { type: 'application/pdf' });
const a = document.createElement('a');
a.href = window.URL.createObjectURL(blob);
a.download = fileName;
a.style.position = 'fixed';
a.target = '_blank';
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
Run Code Online (Sandbox Code Playgroud)

这总是导致 PDF 文件被下载到设备上的下载文件夹,而不是在浏览器中使用 PDF 查看器在新选项卡中打开。我已经在 Chrome、Opera 和 Firefox 中进行了测试,结果相同。

我之前通过仅Content-Disposition在响应中设置标题来实际从服务器本身下载 PDF 时完成了此操作,但我不确定如何使用这样的客户端执行Blob此操作。

Mat*_*ter 15

您可以使用window.open()on 结果window.URL.createObjectURL(blob)在新窗口中打开 PDF 而不是下载它。例如:

var blob = new Blob([pdfBuffer], {type: 'application/pdf'});
var blobURL = URL.createObjectURL(blob);
window.open(blobURL);
Run Code Online (Sandbox Code Playgroud)

  • 对我来说,它不适用于 Chome 最新版本 (4认同)
  • 万分感谢。看起来我也可以从我的代码中删除 `a.download = fileName;` 部分。 (2认同)
  • 如果我必须将该 blob 嵌入到现有页面而不是在新选项卡中打开怎么办? (2认同)