Javascript 如何在新窗口中使用jspdf打开生成的pdf
我正在使用jspdf生成pdf文件。一切正常。但如何打开生成 新选项卡或新窗口中的pdf 我正在使用Javascript 如何在新窗口中使用jspdf打开生成的pdf,javascript,jspdf,Javascript,Jspdf,我正在使用jspdf生成pdf文件。一切正常。但如何打开生成 新选项卡或新窗口中的pdf 我正在使用 doc.output('datauri'); 在同一选项卡中打开pdf。使用javascript,您可以使用以下代码将生成的pdf发送到新窗口 var string = doc.output('datauristring'); var iframe = "<iframe width='100%' height='100%' src='" + string + "'></if
doc.output('datauri');
在同一选项卡中打开pdf。使用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();
var string=doc.output('datauristring');
var iframe=“”
var x=window.open();
x、 document.open();
x、 文件编写(iframe);
x、 document.close();
根据源代码,您可以对输出()使用“dataurlnewwindow”参数:
github中的源代码:
所有可能的情况:
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;
第一步:包括文件和插件
../jspdf.plugin.addimage.js
第二步:构建PDF内容
var doc=new jsPDF()
第三步:在新窗口中显示图像
doc.output('dataurlnewwindow');
第四步:保存数据
var output = doc.output();
return btoa( output);
在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));
}
将此选项称为“datauriNew”Saludos;)李>
或者。。。
您可以使用Blob来实现这一点
比如:
该代码允许您在浏览器中创建一个Blob对象,并将其显示在新选项卡中。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内的同一窗口中预览以及其他内容。此解决方案适合我
window.open(doc.output('bloburl'))
我就是这样处理的
window.open(doc.output('bloburl'), '_blank');
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(
URL.createObjectURL(doc.output("blob")),
"_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);
}
步骤1
关闭addblock
步骤2
加
或尝试
doc.output('dataurlnewwindow')
此代码将帮助您在新选项卡中以所需标题打开生成的pdf
let pdf = new jsPDF();
pdf.setProperties({
title: "Report"
});
pdf.output('dataurlnewwindow');
这对我有用
指定窗口特征时,它将在新窗口中打开
就像:
window.open(url,"_blank","top=100,left=200,width=1000,height=500");
一般来说,您可以:
JsPdf也具有这方面的功能。您可以调用以下方法。文档输出('dataurlnewwindow');下载按钮似乎不适用于此方法。无需使用iframe,只需使用doc.output('dataurlnewwindow',{})@TheBackBencherdoc.output('dataurlnewwindow',{})
始终使浏览器(Firefox)崩溃。与'doc.output('dataurlnewwindow')相同;-四年后,浏览器(Firefox)@fulldelege崩溃,但现在它打开了一个空白页;我收到这个错误:未捕获引用错误:saveAs未定义jspdf.js:975,我使用的是chrome版本29.0.1547.66 m。@YaBasha您还需要FileSaver.js。doc.output('dataurlnewwindow')代码>返回空白页。在调用它之前,我需要做些什么吗?在Chrome60中,doc.output('dataurlnewwindow')
创建一个带有url的新选项卡,但必须按enter键才能加载pdf。使用@ilter中的blob选项效果更好。doc.output('dataurlnewwindow');返回一个空白页,在这个@devgirl(您有相同的解决方案)在iOS 8中不起作用之前,我是否需要调用任何其他方法。我从@atry here找到了一个解决方案:在最新版本中使用“dataurlnewwindow”。@Majestic12这会在地址栏中为我打开一个带有uri字符串的空白页。。。我必须按enter键。doc.output(“dataurlnewwindow”)代码>打开,但不呈现PDF;但是,您可以保存并打印它!window.open(pdf.output('bloburl'),'u blank');在ChromeA的旧线程中对我有效,但如何在addHTML之外生成pdf文件?“blob”似乎是一个局部变量,因此警报(blob)显示“未定义”。有什么线索吗?@Gene9y它甚至更旧,但是你可以使用localStorage或indexeddb来存储blob。@NorCalKnockOut你是否打开了任何类型的广告或弹出窗口阻止程序?ublock源广告阻止程序在chrome上阻止请求,需要为页面禁用它。你必须禁用广告阻止程序才能正常工作
window.open(doc.output('bloburl'), '_blank');
doc.output('dataurlnewwindow')
let pdf = new jsPDF();
pdf.setProperties({
title: "Report"
});
pdf.output('dataurlnewwindow');
window.open(url,"_blank","top=100,left=200,width=1000,height=500");
const pdfActions = {
save: () => doc.save(filename),
getBlob: () => {
const blob = doc.output('datauristring');
console.log(blob)
return blob
},
show: () => doc.output('dataurlnewwindow')
}