Как открыть сгенерированный pdf с помощью jspdf в новом окне

Я использую jspdf для создания pdf-файла. Все работает нормально. Но как открыть сгенерированный PDF в новой вкладке или новом окне.

Я использую

doc.output('datauri');

который открывает pdf на той же вкладке.

9 ответов


  1. поиск в jspdf.js это:

    if(type == 'datauri') {
        document.location.href ='data:application/pdf;base64,' + Base64.encode(buffer);
    }
    
  2. добавить :

    if(type == 'datauriNew') {   
        window.open('data:application/pdf;base64,' + Base64.encode(buffer));
    }
    
  3. назовите эту опцию 'datauriNew' Saludos ;)

на основе источника вы можете использовать параметр 'dataurlnewwindow' для output ():

doc.output('dataurlnewwindow');

источник в github: https://github.com/MrRio/jsPDF/blob/master/jspdf.js#L914

возможные варианты:

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

Я должен использовать это для загрузки PDF напрямую. Используя doc.output('dataurlnewwindow'); производит уродливый iframe для меня. Mac / Chrome.

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

или... Вы можете использовать Blob для достижения этого.

Как:

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

этот код позволяет создать объект Blob внутри браузера и показать его на новой вкладке.


используя javascript, вы можете отправить сгенерированный pdf в новое окно, используя следующий код.

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();

Это решение работает для меня

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

шаг I: включите файл и плагин

../jspdf.plugin.addimage.js

шаг II: создание PDF-контента var doc = новый jsPDF ();

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

шаг III: отображение изображения в новом окне

doc.output('dataurlnewwindow');

Stepv IV: сохранить данные

var output = doc.output();
return btoa( output);

вот как я справляюсь с этим.

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

код Javascript: добавить в конец строки

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

HTML-код-вставить в тело

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

предварительный просмотр в том же окне внутри iframe вместе с другим содержимым.