问题:
从以下位置检索表示 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中文网其他相关文章!