最近遇到一个场景:某客户需要将票据打印出来,票据的类型有很多,有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;
}