我有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)