首页  >  文章  >  web前端  >  如何在所有主要浏览器中显示二进制字符串的 PDF 文件?

如何在所有主要浏览器中显示二进制字符串的 PDF 文件?

Patricia Arquette
Patricia Arquette原创
2024-10-28 17:54:02321浏览

How to Display a PDF File from a Binary String in All Major Browsers?

如何在 JavaScript 中从二进制字符串构建 PDF 文件

问题:
从以下位置检索表示 PDF 文件的二进制字符串一个 Web 服务,并以跨浏览器兼容的方式将其转换为可查看的 PDF。

尝试的解决方案:
将二进制字符串嵌入到数据 URI 中,但在 IE9 中遇到限制和 Firefox。

问题:
是否有其他方法可以为所有主要浏览器生成 PDF 文件,而无需修改 Web 服务实现?

解决方案:
结合使用 Blob API 并将 XMLHttpRequest 的 responseType 设置为“blob”:

<br>var request = new XMLHttpRequest();<br>request.open("GET", "/path/to/pdf", true); <br>request.responseType = "blob";<br>request.onload = function (e) {<pre class="brush:php;toolbar:false">if (this.status === 200) {
    // `blob` response
    console.log(this.response);
    // create `objectURL` of `this.response` : `.pdf` as `Blob`
    var file = window.URL.createObjectURL(this.response);
    var a = document.createElement("a");
    a.href = file;
    a.download = this.response.name || "detailPDF";
    document.body.appendChild(a);
    a.click();
    // remove `a` following `Save As` dialog, 
    // `window` regains `focus`
    window.onfocus = function () {                     
      document.body.removeChild(a)
    }
};

};
request.send();

;

这种方法允许用户下载 PDF 文件,而不是将其嵌入网页中,为查看 PDF 提供跨浏览器兼容的解决方案。

以上是如何在所有主要浏览器中显示二进制字符串的 PDF 文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn