React Native 版本的商米打印 Demo
Posted 爱coding的卖油翁
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React Native 版本的商米打印 Demo相关的知识,希望对你有一定的参考价值。
React Native 版本的商米打印 Demo
React Native 集成商米打印模块。
快速集成
import SunmiPrintModule from './SunmiPrintModule';
SunmiPrintModule.xxx
项目地址:https://github.com/chuwuwang/sunmi-react-native-print-demo
API
1. initPrinter()
初始化商米打印机。
- 参数
- None
- 返回值
- Promise
- resolve(): 包含一个 String 类型的 message 字段。
- reject(): 包含一个 String 类型的 code 和 String 类型的 message 字段。
- Promise
2. getPrinterStatus()
获取打印机状态。
- 参数
- None
- 返回值
- Callback,返回一个 Number 类型的 status 字段,status:
- 1 - 打印机⼯作正常
- 2 - 打印机准备中
- 3 - 通讯异常
- 4 - 缺纸
- 5 - 过热
- 6 - 开盖
- 7 - 切⼑异常
- 8 - 切⼑恢复
- 9 - 未检测到⿊标
- 505 - 未检测到打印机
- 507 - 打印机固件升级失败
- Callback,返回一个 Number 类型的 status 字段,status:
3. reset()
重置打印机的逻辑程序(例如:排版、加粗等样式设置),但不清空缓存区数据,因此未完成的打印作业将在重置后继续。
- 参数
- None
- 返回值
- Callback,返回 Bool 类型的指令操作结果。
4. setBold()
设置字体是否加粗,默认值是 false。
- 参数
- Bool,true:设置字体加粗,false:取消字体加粗。
- 返回值
- Callback,返回 Bool 类型的指令操作结果。
5. setFontSize()
设置字体大小。
- 参数
- Number,字体大小。
- 返回值
- Callback,返回 Bool 类型的指令操作结果。
6. setAlignment()
设置对其模式。
- 参数
- Number,对其模式。
- 0 - 居左
- 1 - 居中
- 2 - 居右
- Number,对其模式。
- 返回值
- Callback,返回 Bool 类型的指令操作结果。
7. printText()
打印文本。
- 参数
- String,待打印的文本数据.
- 返回值
- Callback,返回 Bool 类型的指令操作结果。该接⼝返回处理结果是指命令处理执⾏结果,⽽不是打印出纸的处理结果。
8. printImage()
打印图片。
- 参数
- String,base64 格式的图片数据.
- 返回值
- Callback,返回 Bool 类型的指令操作结果。该接⼝返回处理结果是指命令处理执⾏结果,⽽不是打印出纸的处理结果。
Note: 因为商米的 V 系列和 P 系列使用58毫米打印机。如果你希望打印的图像居中,请制作一张宽度为384px的图像。图⽚最⼤像素需要宽x⾼⼩于250万,且宽度根据纸张规格设置(58为384像素, 80为576像素),如果超过纸张宽度将不显示。
9. printBarcode()
打印⼀维条码。
- 参数
- String,待打印的一维条码数据。
- Number,条码类型(0 - 8)
- 0 - UPC-A
- 1 - UPC-E
- 2 - JAN13(EAN13)
- 3 - JAN8(EAN8)
- 4 - CODE39
- 5 - ITF
- 6 - CODABAR
- 7 - CODE93
- 8 - CODE128
- Number,条码⾼度, 取值 1 - 255, 默认:162。
- Number,条码宽度, 取值 2 - 6, 默认:2。
- Number,⽂字位置(0 - 3)
- 0 - 不打印⽂字
- 1 - ⽂字在条码上⽅
- 2 - ⽂字在条码下⽅
- 3 - 条码上下⽅均打印
- 返回值
- Callback,返回 Bool 类型的指令操作结果。该接⼝返回处理结果是指命令处理执⾏结果,⽽不是打印出纸的处理结果。
10. printQRCode()
打印二维码条码。
- 参数
- String,待打印的二维码数据
- Number,QR码块⼤⼩,单位:点,取值 4 ⾄ 16。
- Number,⼆维码纠错等级(0 - 3)
- 0 - 纠错级别 L (7%)
- 1 - 纠错级别 M (15%)
- 2 - 纠错级别 Q (25%)
- 3 - 纠错级别 H (30%)
- 返回值
- Callback,返回 Bool 类型的指令操作结果。该接⼝返回处理结果是指命令处理执⾏结果,⽽不是打印出纸的处理结果。
11. printTable()
打印表格。
- 参数
- Array, 各列⽂本字符串数组。
- Array, 各列宽度数组,以英⽂字符计算,每个中⽂字符占两个英⽂字符,每个宽度⼤于 0。
- Array, 各列对⻬⽅式:0 居左,1 居中,2 居右。
- 返回值
- Callback,返回 Bool 类型的指令操作结果。该接⼝返回处理结果是指命令处理执⾏结果,⽽不是打印出纸的处理结果。
12. printLine()
打印机⾛纸 N ⾏。
- 参数
- Number, 走纸的行数。
- 返回值
- Callback,返回 Bool 类型的指令操作结果。该接⼝返回处理结果是指命令处理执⾏结果,⽽不是打印出纸的处理结果。
13. enterPrinterBuffer()
进⼊事务打印模式。
事务打印模式适⽤于需要控制打印内容并得到打印结果反馈(是否打印出⼩票)的需求,此模式相当于建⽴⼀个事务队列缓冲区,当开发者进⼊事务打印模式,将开启⼀个事务队列,可以向其中增加打印⽅法,此时打印机不会⽴刻打印内容,当提交事务后,打印机才会依次执⾏队列中的任务,执⾏结束将获得此次事务的结果反馈。
事务打印注意事项:
- 当进⼊缓冲(事务)打印后,提交打印成功将返回成功结果,但遇到打印机异常如缺纸、过热等,将会丢掉本次提交事务中所有指令任务,同时反馈异常,即当⼀单任务执⾏前或执⾏中打印机异常,则此单不会打出。
- 当指令打印和缓冲(事务)打印交替使⽤时,如果打印机异常,不会清除指令打印的内容。
- 进⼊事务打印模式后,同样使⽤1.2.x.中的其它接⼝⽅法输出内容,但不会⽴即打印输出,会将输出内容缓存到缓存区,当调⽤ exitPrinterBuffer() ⽅法才会进⾏打印输出。
- 事务打印结果回调在 Promise ⽅法中的 resolve(String code, String message) ⽅法(会有⼀定的耗时,要等物理打印出纸,不推荐单⾏频繁使⽤事务打印,将会影响打印速度,推荐整张⼩票使⽤事务打印),对应返回 code 和 message 如下:
- a) 0 ! 打印成功,message 为 “Transaction print successful!”
- b) 1 ! 打印失败,message 为 “Transaction print failed!”
- 参数
- None
- 返回值
- None
14. exitPrinterBuffer()
退出事务打印模式并回调结果。
- 参数
- None
- 返回值
- Promise
- resolve(): 包含一个 String 类型的 code 和 String 类型的 message 字段。code 为 0 表示打印成功,其他值表示打印失败。
- reject(): 包含一个 String 类型的 code 和 String 类型的 message 字段。
- Promise
备注
此 Demo 仅适用于商米 P 系列和 V 系列产品,不适用于其他产品。也没有包含支付、扫码、客显、人脸、指纹等其他模块,如果有其他需求,请与我联系。
Email: chuwuwang@126.com
以上是关于React Native 版本的商米打印 Demo的主要内容,如果未能解决你的问题,请参考以下文章