"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment générer un PDF à partir d'une réponse binaire du service Web en JavaScript à travers les navigateurs?

Comment générer un PDF à partir d'une réponse binaire du service Web en JavaScript à travers les navigateurs?

Publié le 2025-03-22
Parcourir:825

How to Generate a PDF from a Binary Web-Service Response in JavaScript Across Browsers?

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:

  • Compatibilité avec tous les principaux navigateurs Approche dans certains navigateurs
  • permet aux utilisateurs de télécharger facilement le fichier PDF
Dernier tutoriel Plus>

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