更新记录
1.0.5(2026-03-09)
下载此版本
- 修复code c截取数字字符串错误问题
1.0.4(2026-03-09)
下载此版本
- 修复setDic代码提示宽度单次错误问题
- 修复print方法的gpio代码提示
- 修复print中钱箱指令错误问题
- 增加打印条形码type参数a、b、c
1.0.3(2026-03-09)
下载此版本
- init参数可以是字符串类型数字
- setTable打印前恢复默认设置
- 修复打印模式无法取消倍高倍宽、加粗、下划线模式
查看更多
平台兼容性
uni-app(4.81)
| Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
| √ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
| 微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
小红书小程序 |
快应用-华为 |
快应用-联盟 |
| √ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
- |
√ |
√ |
uni-app x(4.81)
| Chrome |
Safari |
Android |
iOS |
鸿蒙 |
微信小程序 |
| - |
- |
- |
- |
- |
- |
escpos指令生成
提供方法
init(type = 80) type指定是80还是58打印机,默认80 - 调用的时候必须先调用这个方法
openCasher(gpio = 2) 打开钱箱,默认2 - 指定gpio引脚
setCharacter(character = 0) 设置国际字符集,默认0 - 字符集代码(0~15),参考打印指令
setText({text = '', align = 'left', isBold = false, fontSize = 1, lf = true, underlineType = 0, isRotate = false, isFlip = false, isInversion = false}) 设置打印文字
setBarCode({text = '', align = 'left', position = 0, width = 3, height = 162, font = 0}) 设置条形码
setQrCode({text = '', align = 'left', size = 0, errorLevel = 0}) 设置二维码
setTable({head = [], data = [], dashType = 3}) 设置表格
setLine(char = ' ') 整行打印同一个字符,默认空字符串
setDic({list = [], leftWidth = 50, dashType = 3}) 设置键值对,俩边对齐
print({line = 0, isCut = false, type = 1}) 生成打印指令,最后调用
init(type = 80)
- type可选值:58或80
openCasher(gpio = 2)
- gpio可选值:2或5
setCharacter(character = 0)
- character可选值:0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15
- 0: 美国 (USA)
- 1: 法国 (France)
- 2: 德国 (Germany)
- 3: 英国 (UK)
- 4: 丹麦 I (Denmark I)
- 5: 瑞典 (Sweden)
- 6: 意大利 (Italy)
- 7: 西班牙 I (Spain I)
- 8: 日本 (Japan)
- 9: 挪威 (Norway)
- 10: 丹麦 I (Denmark I) —— 注:图片中第10行显示为“丹麦 I”,与第4行重复,可能为印刷错误或不同变体
- 11: 西班牙 II (Spain II)
- 12: 拉丁美洲 (Latin America)
- 13: 韩国 (Korea)
- 14: 斯洛维尼亚/克罗地亚 (Slovenia/Croatia)
- 15: 中国 (China)
setText({text = '', align = 'left', isBold = false, fontSize = 1, lf = true, underlineType = 0, isRotate = false, isFlip = false, isInversion = false})
- text:打印文字
- align:对齐方式 - left|center|right
- isBold:是否粗体
- fontSize:文字倍数 - 1|2|3|4|5|6|7|8
- lf:打印后换行
- underlineType:下划线模式 - 0|1|2|48|49|50,0,48 取消下划线;1,49 1点宽下划线;2,50 2点宽下划线,汉字不支持下划线
- isRotate:是否顺时针旋转90度
- isFlip:是否倒置打印
- isInversion:是否反显打印
setBarCode({text = '', align = 'left', position = 0, width = 3, height = 162, font = 0})
- text: 条形码内容,当前版本固定 CODE128中的CODE B,也就是支持字母和数字
- align:对齐方式 - left|center|right
- position:文字打印位置,0,48 不打印;1,49 上方; 2, 50 下方 3, 51 上下方都有
- width:条码宽度 2|3|4|5|6
- height:条码高度, 1 <= height <= 255
- font:字体 0,48 标准字体;1,49 压缩字体
setQrCode({text = '', align = 'left', size = 8, errorLevel = 48})
- text:二维码内容
- align:对齐方式 - left|center|right
- size:设置单元大小 1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16
- errorLevel:纠错级别 48|49|50|51,分别对应7%、15%、25%、30%
setTable({head = [], data = [], dashType = 3})
- head:表头,必须包含name、width、align,所有width的和不能大于100,align可选值:left、right、center,默认left,比如
[{name: '商品名称', width: 40, align: 'left'}, {name: '数量', width: 20, align: 'center'}, {name: '单价', width: 20, align: 'center'}, {name: '合计', width: 20, align: 'right'}]
- data:只需要写对应表头的值,比如
['袜子', 100, 10, 1000]
- dashType:上下虚线,0无线;1上面虚线;2下面虚线;3上线都有虚线
setLine(char = ' ')
- char:整行显示的字符,仅支持宽度为1的字符,也就是不支持中文,常见的有
`-`+ =
setDic({list = [], leftWidth = 50, dashType = 3})
- list: 键值对列表,
[{name: '店铺名称', value: '华商乐'}]
- leftWidth: 左侧占用的宽度,不允许大于98
- dashType:上下虚线,0无线;1上面虚线;2下面虚线;3上线都有虚线
print({line = 0, isCut = false, type = 1})
- line:多打印几行空行,默认0
- isCut:是否切刀
- type:返回格式:1数字数组;2十六进制字符串
代码示例
const head = [{name: '商品名称', width: 40, align: 'left'}, {name: '数量', width: 20, align: 'center'}, {name: '单价', width: 20, align: 'center'}, {name: '合计', width: 20, align: 'right'}]
const data = [['正常商品', 10, 1000, 10000], ['袜子', 10, 1000, 10000]]
const hex = EscPos.init()
.setText({text: '标题', align: 'center', isBold: true, fontSize: 2})
.setText({text: '标题', align: 'center', isBold: false, fontSize: 2})
.setText({text: '电话', align: 'center', isBold: false})
.setTable({head, data, dashType: 0})
.setText({text: '商品总数:10', isBold: false})
.setBarCode({text: 'No. 123456', align: 'center', width: 2, height: 80, font: 1})
.setQrCode({text: 'http://baidu.com', align: 'center'})
.setLine('=')
.print({isCut: true, type: 2})
待完成
- 位图
- 边距
- 移动
- 打印区域
- 光栅位图