Problem:
Rufen Sie eine Binärzeichenfolge ab, die eine PDF-Datei darstellt einen Webdienst und konvertieren Sie ihn browserübergreifend in ein anzeigbares PDF.
Lösungsversuch:
Einbetten der Binärzeichenfolge in einen Daten-URI, stoßen jedoch in IE9 auf Einschränkungen und Firefox.
Frage:
Gibt es alternative Methoden zum Generieren einer PDF-Datei für alle gängigen Browser, ohne dass Änderungen an der Webdienst-Implementierung erforderlich sind?
Lösung:
Verwendung der Blob-API in Verbindung mit der Einstellung des Antworttyps von XMLHttpRequest auf „blob“:
<br>var request = new XMLHttpRequest();<br>request.open("GET", "/path/to/pdf", true); <br>request.responseType = "blob";<br>request.onload = function (e) {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><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();
Dieser Ansatz ermöglicht es Benutzern, die PDF-Datei herunterzuladen, anstatt sie in eine Webseite einzubetten, und bietet so eine browserübergreifende kompatible Lösung zum Anzeigen von PDFs.
Das obige ist der detaillierte Inhalt vonWie zeige ich eine PDF-Datei aus einer Binärzeichenfolge in allen gängigen Browsern an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!