Faisant du PDF à partir de la réponse binaire Web-Service dans JavaScript
Background:
Cette question aborde le défi de la génération d'un fichier pdf à partir d'une chaîne binaire rétractée via une demande d'un ajax. Le flux binaire fourni se compose de l'en-tête et du contenu PDF. Bien que la méthode Data-Uri fonctionne dans certains navigateurs, elle échoue dans Internet Explorer 9 et Firefox.
Le problème:
la préoccupation réside dans la recherche d'une solution de navigateur transvers Implémentation.
Solution:
Pour résoudre ce problème, l'approche suivante est suggérée:
Tireigant des blobs et téléchargez les attributs:
en définissant le revetype du XMLHT être reçu comme un objet blob. Ce blob représente le fichier PDF. Par la suite, vous pouvez créer un lien de téléchargement à l'aide de la méthode CreateObjectUrl pour permettre aux utilisateurs de télécharger le PDF.
pour démontrer cette solution, l'extrait de code suivant peut être utilisé:
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();
avantages:
Cette méthode offre les avantages suivants:
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3