如何使用JavaScript 從Web 服務傳回的二進位字串建立PDF 檔案
嘗試從以下位置渲染PDF 檔案時會遇到問題透過Ajax 請求接收的二進位字串。 Web 瀏覽器(即 Firefox 和 Internet Explorer 9)在使用 data:uri 解決方案時會帶來挑戰。
問題
收到的二進位字串類似於以下內容:
%PDF-1.4.... ..... ....hole data representing the file .... %% EOF
嘗試的解決方案
透過data:uri 嵌入資料在Opera 和Chrome 中有效,但在Firefox 和Internet Explorer 中失敗。
潛在的解決方案
考慮在檔案系統上建立 PDF 檔案以允許使用者下載。此方法需要客戶端解決方案並與主要瀏覽器相容。
修訂的解決方案
將 XMLHttpRequest 回應類型修改為「blob」。然後,用 元素中的 download 屬性取代 window.open 函數。此程序啟動將 XMLHttpRequest 回應下載為「.pdf」檔案。
<code class="javascript">var request = new XMLHttpRequest(); request.open("GET", "/path/to/pdf", true); request.responseType = "blob"; request.onload = function (e) { 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();</code>
以上是如何使用 JavaScript 從 Web 服務傳回的二進位字串下載 PDF 檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!