Я использую jspdf для создания PDF файла. Все прекрасно работает. Но как открыть сгенерированный pdf в новой вкладке или в новом окне.
Я использую
doc.output('datauri');
Что открывает PDF на той же вкладке.
Я использую jspdf для создания PDF файла. Все прекрасно работает. Но как открыть сгенерированный pdf в новой вкладке или в новом окне.
Я использую
doc.output('datauri');
Что открывает PDF на той же вкладке.
Поиск в jspdf.js это:
if(type == 'datauri') {
document.location.href ='data:application/pdf;base64,' + Base64.encode(buffer);
}
Добавлять:
if(type == 'datauriNew') {
window.open('data:application/pdf;base64,' + Base64.encode(buffer));
}
На основе источника вы можете использовать параметр dataurlnewwowow для вывода():
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 внутри браузера и показать его на новой вкладке.
Это решение работает для меня
window.open(doc.output('bloburl'))
с помощью 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'), '_blank');
этот код поможет вам открыть сгенерированный pdf в новой вкладке с нужным заголовком
let pdf = new jsPDF();
pdf.setProperties({
title: "Report"
});
pdf.output('dataurlnewwindow');
Это работает для меня !!!
Когда вы укажете особенности окна, оно откроется в новом окне
Прямо как:
window.open(url,"_blank","top=100,left=200,width=1000,height=500");
Шаг I: включить файл и плагин
../jspdf.plugin.addimage.js
Шаг II: создание PDF-контента var doc = new 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);
ШАГ 1
Отключитьнадстройку
ШАГ 2
Добавить
window.open(doc.output('bloburl'), '_blank');
Или попробуйте
doc.output('dataurlnewwindow')
Код 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 вместе с другим содержимым.
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);
}
@Ismael Soschinski, сэр, ваш ответ работает нормально, но pdf не открывается автоматически в другом окне. Можете ли вы помочь мне автоматически открыть pdf в другом окне в браузере Edge