使用jsPDF让pdf显示在页面中
output在新的窗口显示在本页面插入文件名称设置使用jspdf生成的pdf文档,网上一般都是如何下载到本地中,使用save()方法,但是现在并不想下载,而是直接显示在页面中。output查找了官方文档,发现可以使用output方法:output(type, options) → {string|window|ArrayBuffer|Blob|jsPDF|null|undefined}源码:jsp
·
使用jspdf生成的pdf文档,网上一般都是如何下载到本地中,使用save()方法,但是现在并不想下载,而是直接显示在页面中。
output
查找了官方文档,发现可以使用output
方法:
output(type, options) → {string|window|ArrayBuffer|Blob|jsPDF|null|undefined}
源码: jspdf.js, line 3010
生成PDF文档。
若类型参数未定义,则输出是以字符串作为返回结果的PDF的原始体。
参数:
名称 | 类型 | 描述 |
---|---|---|
type | string | 标识一种可能的输出类型的字符串。 可能的值为: ‘arraybuffer’ -> (ArrayBuffer) ‘blob’ -> (Blob) ‘bloburi’/‘bloburl’ -> (string) ‘datauristring’/‘dataurlstring’ -> (string) ‘datauri’/‘dataurl’ -> (undefined) -> 将生成的位置更改为DataUrString/dataurlstring ’dataurlnewwindow’ -> (window | null | undefined) 如果不是全局窗口对象(节点),则引发错误 ’pdfobjectnewwindow’ -> (window | null) 如果不是全局窗口对象(节点),则引发错误 ’pdfjsnewwindow’ -> (wind | null) |
options | Object | string | 向PDF生成器提供一些附加信号的对象。 可能的选项是“文件名” 可以传递字符串而不是{filename:string},默认为“generated.pdf” |
在新的窗口显示
使用的是dataurlnewwindow
,这会打开一个新的窗口,
但是无法设置文件名称,点击下载也是没有反应,代码如下
doc.output('dataurlnewwindow', orderNo + ".pdf");
在本页面插入
还可以显示在当前页面
使用iframe
或者embed
标签
iframe
在html中设置元素:
<iframe id="iframe123" frameborder="0" ></iframe>
js:
document.getElementById("iframe123").src = doc.output('datauristring');//在iframe中显示
embed
html:
<div id="iframe123"> </div>
js:
let data = doc.output('datauristring', orderNo + ".pdf");
var objbuilder = '';
objbuilder += ('<embed width=\'100%\' height=\'100%\' src="');
objbuilder += (data);
objbuilder += ('" type="application/pdf" title="' + orderNo + '.pdf" />');
document.getElementById("iframe123").innerHTML = objbuilder
现在点击下载会有反应,但是文件名称无法设置
文件名称设置
最后看到一种方法,在生成PDF文档时,隐藏浏览器默认的pdf工具栏,然后使用save
方法生成pdf文档。代码如下:
let data = doc.output('datauristring', orderNo + ".pdf");
var objbuilder = '';
objbuilder += ('<embed width=\'100%\' height=\'100%\' src="');
objbuilder += (data +'#toolbar=0);
objbuilder += ('" type="application/pdf" title="' + orderNo + '.pdf" />');
document.getElementById("iframe123").innerHTML = objbuilder
在生成的base64代码后面添加#toolbar=0
更多推荐
已为社区贡献2条内容
所有评论(0)