web-dev-qa-db-fra.com

Comment ouvrir le pdf généré en utilisant jspdf dans une nouvelle fenêtre

J'utilise jspdf pour générer un fichier pdf. Tout fonctionne bien. Mais comment ouvrir Pdf généré dans un nouvel onglet ou une nouvelle fenêtre.

J'utilise 

doc.output('datauri');

Qui ouvre le pdf dans le même onglet.

31
Satendra Jindal
  1. Rechercher dans jspdf.js ceci:

    if(type == 'datauri') {
        document.location.href ='data:application/pdf;base64,' + Base64.encode(buffer);
    }
    
  2. Ajouter :

    if(type == 'datauriNew') {   
        window.open('data:application/pdf;base64,' + Base64.encode(buffer));
    }
    
  3. appelez cette option 'datauriNew' Saludos;)
6
Juan Capello

En fonction de la source, vous pouvez utiliser le paramètre 'dataurlnewwindow' pour output ():

doc.output('dataurlnewwindow');

Source dans github: https://github.com/MrRio/jsPDF/blob/master/jspdf.js#L914

Tous les cas possibles:

doc.output('save', 'filename.pdf'); //Try to save PDF as a file (not works on ie before 10, and some mobile devices)
doc.output('datauristring');        //returns the data uri string
doc.output('datauri');              //opens the data uri in current window
doc.output('dataurlnewwindow');     //opens the data uri in new window
83
kardave

Je dois l'utiliser pour charger le PDF directement. Utiliser doc.output('dataurlnewwindow'); produit un iframe moche pour moi. Mac/Chrome.

  var string = doc.output('datauristring');
  var x = window.open();
  x.document.open();
  x.document.location=string;
15
William Entriken

Ou bien ... vous pouvez utiliser Blob pour y parvenir.

Comme:

pdf.addHTML($('#content'), y, x, options, function () {
    var blob = pdf.output("blob");
    window.open(URL.createObjectURL(blob));
});

Ce code vous permet de créer un objet Blob dans le navigateur et de l'afficher dans le nouvel onglet.

8
ilter

Voici comment je le gère.

window.open(doc.output('bloburl'), '_blank');
5
Alocus

en utilisant javascript, vous pouvez envoyer le pdf généré dans une nouvelle fenêtre en utilisant le code suivant.

var string = doc.output('datauristring');

var iframe = "<iframe width='100%' height='100%' src='" + string + "'></iframe>"

var x = window.open();
x.document.open();
x.document.write(iframe);
x.document.close();
5
rod

Cette solution fonctionne pour moi

window.open(doc.output('bloburl'))
4
sol404

Etape I: inclure le fichier et le plugin

../jspdf.plugin.addimage.js

Étape II: création du contenu PDF Var doc = new jsPDF ();

doc.setFontSize(12);
doc.text(35, 25, "Welcome to JsPDF");
doc.addImage(imgData, 'JPEG', 15, 40, 386, 386);

Étape III: Afficher l'image dans une nouvelle fenêtre

doc.output('dataurlnewwindow');

Stepv IV: sauvegarder les données

var output = doc.output();
return btoa( output);
1
milind Morey

Code Javascript: Ajouter en fin de ligne

$("#pdf_preview").attr("src", pdf.output('datauristring'));

Code HTML: Insérer dans le corps  

<head>
</head>
<body>
<H1>Testing</h1>
<iframe id="pdf_preview" type="application/pdf" src="" width="800" height="400"></iframe>
</body>
</html>

aperçu dans la même fenêtre à l'intérieur de l'iframe avec d'autres contenus.

0
jiban

Code Javascript

// IE doesn't allow using a blob object directly as link href
// instead it is necessary to use msSaveOrOpenBlob
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
  window.navigator.msSaveOrOpenBlob(doc.output("blob"), "Name.pdf");
} else {

  // For other browsers:
  // Create a link pointing to the ObjectURL containing the blob.
  doc.autoPrint();
  window.open(
    doc.output("bloburl"),
    "_blank",
    "height=650,width=500,scrollbars=yes,location=yes"
  );

  // For Firefox it is necessary to delay revoking the ObjectURL
  setTimeout(() => {    
    window.URL.revokeObjectURL(doc.output("bloburl"));
  }, 100);
}
0
Ismael Soschinski

ÉTAPE 1  
Désactiver addblock

ÉTAPE 2
Ajouter

window.open(doc.output('bloburl'), '_blank');

Ou essayer 

doc.output('dataurlnewwindow')
0
user3423593