Appearance
printer — 打印工具
printer 模块提供了打印指令构建和打印服务对接功能,支持小票打印机、标签打印机等。
引入方式
javascript
var printer = require("printer")Builder 构建模式
javascript
var client = printer.New()
.Provider("feie")
.Config({
User: "your-user",
UKey: "your-ukey",
SN: "printer-sn"
})
.Build()支持的提供商
feie(飞鹅)、yilianyun(易联云)、meituan(美团)、xiaomi(小米)、sunmi(商米)、pospal、printer_sdk
打印操作
Print — 打印内容
javascript
client.Print({
Content: "Hello World\n测试打印",
Times: 1
})Status — 查询打印机状态
javascript
var status = client.Status()辅助方法
javascript
var printUtil = printer.NewPrint()
// ESC/POS 指令
printUtil.ESCInitialize() // 初始化打印机
printUtil.ESCFeedLines(3) // 走纸 3 行
printUtil.ESCCutPaper() // 切纸
printUtil.ESCTextAlign("center") // 居中对齐
printUtil.ESCBold(true) // 加粗
printUtil.ESCQRCode("https://example.com") // 打印二维码
printUtil.ESCBarcode("1234567890") // 打印条形码
// 格式化工具
printUtil.FormatPrice(99.5) // "99.50"
printUtil.CenterText("标题", 32) // 居中文本
printUtil.RepeatChar("-", 32) // 重复字符
// ZPL 指令(标签打印机)
printUtil.ZPLStart()
printUtil.ZPLTextField("Hello", 10, 10, 30)
printUtil.ZPLQRCode("https://example.com", 10, 50)
printUtil.ZPLEnd()完整示例
javascript
var printer = require("printer")
// 构建小票内容
var printUtil = printer.NewPrint()
var content = printUtil.ESCInitialize()
+ printUtil.ESCTextAlign("center")
+ printUtil.ESCBold(true)
+ "购物小票\n"
+ printUtil.ESCBold(false)
+ printUtil.ESCTextAlign("left")
+ printUtil.RepeatChar("-", 32) + "\n"
+ "商品A x2 ¥19.90\n"
+ "商品B x1 ¥29.90\n"
+ printUtil.RepeatChar("-", 32) + "\n"
+ printUtil.ESCTextAlign("right")
+ "合计: ¥69.70\n"
+ printUtil.ESCQRCode("https://example.com/order/123")
+ printUtil.ESCFeedLines(3)
+ printUtil.ESCCutPaper()
// 发送到飞鹅打印机
var client = printer.New()
.Provider("feie")
.Config({
User: env.Get("FEIE_USER"),
UKey: env.Get("FEIE_UKEY"),
SN: env.Get("FEIE_SN")
})
.Build()
client.Print({ Content: content, Times: 1 })
response.Success({ message: "打印指令已发送" })