Membina PDF daripada Binari Web-Service Response dalam JavaScript
Latar Belakang:
Soalan ini menangani cabaran menjana fail PDF daripada rentetan binari yang diambil melalui permintaan Ajax. Strim binari yang disediakan terdiri daripada pengepala dan kandungan PDF. Walaupun kaedah data-uri berfungsi dalam sesetengah penyemak imbas, ia gagal dalam Internet Explorer 9 dan Firefox.
Isu:
Kebimbangan terletak pada mencari penyemak imbas silang penyelesaian yang membenarkan membina fail PDF daripada respons binari tanpa bergantung pada pengeditan pelaksanaan perkhidmatan web.
Penyelesaian:
Untuk menyelesaikan isu ini, pendekatan berikut ialah dicadangkan:
Memanfaatkan Gumpalan dan Muat Turun Atribut:
Dengan menetapkan responsType objek XMLHttpRequest kepada "gumpalan," respons akan diterima sebagai objek Gumpalan. Blob ini mewakili fail PDF. Selepas itu, anda boleh membuat pautan muat turun menggunakan kaedah createObjectURL untuk membenarkan pengguna memuat turun PDF.
Untuk menunjukkan penyelesaian ini, coretan kod berikut boleh digunakan:
<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>
Faedah:
Kaedah ini menawarkan kelebihan berikut:
Atas ialah kandungan terperinci Bagaimana untuk Menjana PDF daripada Respons Perkhidmatan Web Binari dalam JavaScript Merentasi Pelayar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!