更新记录

1.0.5(2026-03-09) 下载此版本

  1. 修复code c截取数字字符串错误问题

1.0.4(2026-03-09) 下载此版本

  1. 修复setDic代码提示宽度单次错误问题
  2. 修复print方法的gpio代码提示
  3. 修复print中钱箱指令错误问题
  4. 增加打印条形码type参数a、b、c

1.0.3(2026-03-09) 下载此版本

  1. init参数可以是字符串类型数字
  2. setTable打印前恢复默认设置
  3. 修复打印模式无法取消倍高倍宽、加粗、下划线模式
查看更多

平台兼容性

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指令生成

提供方法

  1. init(type = 80) type指定是80还是58打印机,默认80 - 调用的时候必须先调用这个方法
  2. openCasher(gpio = 2) 打开钱箱,默认2 - 指定gpio引脚
  3. setCharacter(character = 0) 设置国际字符集,默认0 - 字符集代码(0~15),参考打印指令
  4. setText({text = '', align = 'left', isBold = false, fontSize = 1, lf = true, underlineType = 0, isRotate = false, isFlip = false, isInversion = false}) 设置打印文字
  5. setBarCode({text = '', align = 'left', position = 0, width = 3, height = 162, font = 0}) 设置条形码
  6. setQrCode({text = '', align = 'left', size = 0, errorLevel = 0}) 设置二维码
  7. setTable({head = [], data = [], dashType = 3}) 设置表格
  8. setLine(char = ' ') 整行打印同一个字符,默认空字符串
  9. setDic({list = [], leftWidth = 50, dashType = 3}) 设置键值对,俩边对齐
  10. print({line = 0, isCut = false, type = 1}) 生成打印指令,最后调用

init(type = 80)

  1. type可选值:58或80

openCasher(gpio = 2)

  1. gpio可选值:2或5

setCharacter(character = 0)

  1. character可选值:0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15
  2. 0: 美国 (USA)
  3. 1: 法国 (France)
  4. 2: 德国 (Germany)
  5. 3: 英国 (UK)
  6. 4: 丹麦 I (Denmark I)
  7. 5: 瑞典 (Sweden)
  8. 6: 意大利 (Italy)
  9. 7: 西班牙 I (Spain I)
  10. 8: 日本 (Japan)
  11. 9: 挪威 (Norway)
  12. 10: 丹麦 I (Denmark I) —— 注:图片中第10行显示为“丹麦 I”,与第4行重复,可能为印刷错误或不同变体
  13. 11: 西班牙 II (Spain II)
  14. 12: 拉丁美洲 (Latin America)
  15. 13: 韩国 (Korea)
  16. 14: 斯洛维尼亚/克罗地亚 (Slovenia/Croatia)
  17. 15: 中国 (China)

setText({text = '', align = 'left', isBold = false, fontSize = 1, lf = true, underlineType = 0, isRotate = false, isFlip = false, isInversion = false})

  1. text:打印文字
  2. align:对齐方式 - left|center|right
  3. isBold:是否粗体
  4. fontSize:文字倍数 - 1|2|3|4|5|6|7|8
  5. lf:打印后换行
  6. underlineType:下划线模式 - 0|1|2|48|49|50,0,48 取消下划线;1,49 1点宽下划线;2,50 2点宽下划线,汉字不支持下划线
  7. isRotate:是否顺时针旋转90度
  8. isFlip:是否倒置打印
  9. isInversion:是否反显打印

setBarCode({text = '', align = 'left', position = 0, width = 3, height = 162, font = 0})

  1. text: 条形码内容,当前版本固定 CODE128中的CODE B,也就是支持字母和数字
  2. align:对齐方式 - left|center|right
  3. position:文字打印位置,0,48 不打印;1,49 上方; 2, 50 下方 3, 51 上下方都有
  4. width:条码宽度 2|3|4|5|6
  5. height:条码高度, 1 <= height <= 255
  6. font:字体 0,48 标准字体;1,49 压缩字体

setQrCode({text = '', align = 'left', size = 8, errorLevel = 48})

  1. text:二维码内容
  2. align:对齐方式 - left|center|right
  3. size:设置单元大小 1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16
  4. errorLevel:纠错级别 48|49|50|51,分别对应7%、15%、25%、30%

setTable({head = [], data = [], dashType = 3})

  1. 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'}]
  2. data:只需要写对应表头的值,比如 ['袜子', 100, 10, 1000]
  3. dashType:上下虚线,0无线;1上面虚线;2下面虚线;3上线都有虚线

setLine(char = ' ')

  1. char:整行显示的字符,仅支持宽度为1的字符,也就是不支持中文,常见的有 `-`+ =

setDic({list = [], leftWidth = 50, dashType = 3})

  1. list: 键值对列表,[{name: '店铺名称', value: '华商乐'}]
  2. leftWidth: 左侧占用的宽度,不允许大于98
  3. dashType:上下虚线,0无线;1上面虚线;2下面虚线;3上线都有虚线

print({line = 0, isCut = false, type = 1})

  1. line:多打印几行空行,默认0
  2. isCut:是否切刀
  3. 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})

待完成

  1. 位图
  2. 边距
  3. 移动
  4. 打印区域
  5. 光栅位图

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。