一 需求:
公司项目需要通过electron调用系统打印机,实现打印小票的功能。
二、分析:
electron打印大概有两种:
第一种:通过window的webcontent对象,使用此种方式需要单独开出一个打印的窗口,可以将该窗口隐藏,但是通信调用相对复杂。
第二种:使用页面的webview元素调用打印,可以将webview隐藏在调用的页面中,通信方式比较简单。
两个对象调用打印方法的使用方式都一样。
本文是通过第二种方法实现静默打印。
三、实现过程:
1、要实现打印功能,首先要知道我们的设备上有哪些打印机。方法是:在渲染线程通过electron的ipcRenderer对象发送事件到主线程获取。(本文的渲染线程可以当做为一个print.vue文件)
(1)主线程(electron.js)伪代码如下:
//引入electron
import electron from electron;
//创建一个浏览器对象
const window = new electron.BrowserWindow({
width,
height,
frame: false,
show: false,
backgroundColor: #4b5b79,
minWidth: 1024,
minHeight: 768,
webPreferences: { webSecurity: false },
});
//在主线程下ÿ