NO67.妙用浏览器"打印"功能
评论
收藏

NO67.妙用浏览器"打印"功能

经验分享
云潮
2024-06-19 14:43·浏览量:942
云潮
发布于 2024-06-19 14:35更新于 2024-06-19 14:43942浏览

一、问题背景

最近遇到一个场景:某客户需要将票据打印出来,票据的类型有很多,有PDF格式的,有PNG格式的等等,格式不同导致打开的软件不同,他先是自己根据不同的文件类型写了不同的打印方法,运行起来以后发现不是很稳定,想问有什么优化的方法

二、解决思路

依赖浏览器自身携带的“打印”功能可以轻松实现该需求q'we

1.首先打开影刀插件设置,勾选允许访问文件网址,这样就支持使用打开网页指令打开本地文件

2.通过JS的windows.print()调出打印预览界面

但是这里会有个问题,执行js执行会卡死

这里我们稍微绕一下

function (element, input) {
   // 创建一个iframe元素
var iframe = document.createElement('iframe');
iframe.style.display = 'none'; // 隐藏iframe

// 将整个网页内容赋值给iframe
iframe.srcdoc = document.documentElement.outerHTML;

// 将iframe添加到文档中
document.body.appendChild(iframe);

// 等待iframe加载完成后,调用打印方法
iframe.onload = function() {
    iframe.contentWindow.print(); // 启动打印进程
};
    return null;
}


收藏1
全部评论1
最新
发布评论
评论