Heim > Artikel > Web-Frontend > Wie erstelle ich eine PDF-Datei aus einer binären Webdienst-Antwort in JavaScript in allen Browsern?
PDF aus binärer Web-Service-Antwort in JavaScript erstellen
Hintergrund:
Diese Frage befasst sich mit der Herausforderung, eine PDF-Datei aus einer Binärzeichenfolge zu generieren, die über eine Ajax-Anfrage abgerufen wird. Der bereitgestellte Binärstream besteht aus dem PDF-Header und dem Inhalt. Während die data-uri-Methode in einigen Browsern funktioniert, schlägt sie in Internet Explorer 9 und Firefox fehl.
Das Problem:
Die Sorge besteht darin, einen Cross-Browser zu finden Lösung, die das Erstellen einer PDF-Datei aus der binären Antwort ermöglicht, ohne auf die Bearbeitung der Webdienst-Implementierung angewiesen zu sein.
Lösung:
Um dieses Problem zu beheben, ist der folgende Ansatz vorgeschlagen:
Nutzung von Blobs und Download-Attributen:
Durch Festlegen des Antworttyps des XMLHttpRequest-Objekts auf „blob“ wird die Antwort als Blob-Objekt empfangen. Dieser Blob stellt die PDF-Datei dar. Anschließend können Sie mithilfe der Methode „createObjectURL“ einen Download-Link erstellen, um Benutzern das Herunterladen der PDF-Datei zu ermöglichen.
Um diese Lösung zu demonstrieren, kann das folgende Code-Snippet verwendet werden:
<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>
Vorteile:
Diese Methode bietet die folgenden Vorteile:
Das obige ist der detaillierte Inhalt vonWie erstelle ich eine PDF-Datei aus einer binären Webdienst-Antwort in JavaScript in allen Browsern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!