Problème :
Récupérer une chaîne binaire représentant un fichier PDF à partir de un service Web et convertissez-le en un PDF visible d'une manière compatible avec tous les navigateurs.
Tentative de solution :
Intégrer la chaîne binaire dans un URI de données, mais rencontrer des limitations dans IE9 et Firefox.
Question :
Existe-t-il des méthodes alternatives pour générer un fichier PDF pour tous les principaux navigateurs, sans nécessiter de modifications dans l'implémentation du service Web ?
Solution :
Utilisation de l'API Blob en conjonction avec la définition du type de réponse de XMLHttpRequest sur "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();
Cette approche permet aux utilisateurs de télécharger le fichier PDF plutôt que de l'intégrer dans une page Web, offrant ainsi une solution compatible avec tous les navigateurs pour visualiser les PDF.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!