1. 需求背景
前段时间公司项目需要在商户电脑上调用商户自己的热敏打印机打印商户的客户的购物小票(如下图),但FE的纯js显然不能实现该功能,因此采用nw来实现。
当时的项目已有一个web页面,因此在nw里将已有的html页面嵌入了iframe,与nw内实现的打印功能通过postMessage通信。但本篇重点介绍如何打印小票,这些通信以及nw的其他使用就不再占用篇幅了。
2. 功能点
- 获取用户打印机列表,让用户选择当前使用的打印机
- 按照格式打印所需内容
3. 最终代码使用
调用封装后的功能:
const printer = require('./printer.js')
function getPrinterList() {
const list = printer.getPrinterList()
const res = []
list.forEach(item => res.push(item.name))
return res
}
// 获取当前打印机列表
const printerList = getPrinterList()
// 暂定使用打印机为第一个
const printerName = printerList[0]
// mock订单数据
const mockData = { id: 001,