Skip to content

🖨 基于商米内置打印机 SDK 封装的 React Native 模块

License

Notifications You must be signed in to change notification settings

24jieqi/react-native-printer-sunmi

Repository files navigation

react-native-printer-sunmi v2

基于商米新版 Printx SDK 实现的打印原生模块

v1.x 基于旧版 SDK 的实现仍然可用,使用方式见文档

安装

npm install react-native-printer-sunmi

Usage

import PinterSunmi from 'react-native-printer-sunmi';

// ...
async function print() {
  await PrinterSunmi.connect();
  PrinterSunmi.enableTransMode(true);
  PrinterSunmi.initLine({ align: 'CENTER' });
  PrinterSunmi.printText('测试小票打印', { textSize: 32, bold: true });
  PrinterSunmi.addText('购物列表\n', { bold: true });
  PrinterSunmi.initLine();
  PrinterSunmi.addText('小计:3件\n');
  PrinterSunmi.printTexts([
    { text: '商品', span: 2 },
    { text: '价格', span: 1, align: 'RIGHT' },
    { text: '数量', span: 1, align: 'RIGHT' },
  ]);
  PrinterSunmi.printTexts([
    { text: '鲜榴莲', span: 2 },
    { text: '22', span: 1, align: 'RIGHT' },
    { text: 'X3', span: 1, align: 'RIGHT' },
  ]);
  PrinterSunmi.printDividingLine('EMPTY', 24);
  PrinterSunmi.printDividingLine('SOLID', 2);
  PrinterSunmi.printDividingLine('EMPTY', 24);
  PrinterSunmi.printTrans();
}

API

⚠️ 钱箱控制接口&LCD 客显控制接口暂未测试

connect: () => Promise<boolean> 连接/获取打印机

disconnect: () => void 断开连接/释放 SDK

watchError(errorHandler: (payload: PrintErrorMessage) => void) => () => void 异常监听

getInfo: () => PrinterInfo 获取打印机信息

钱箱控制接口

openCashDrawer: () => void 开启钱箱

isCashDrawerOpen: () => boolean 获取钱箱状态

LCD 客显控制接口

lcdConfig: (command: LCDCommod) => void 控制客显屏的状态

lcdShowText: (content: string, config: LCDShowTextConfig) => void 显示指定大小的文本内容

lcdShowTexts: (texts: LCDShowTextsItem[]) => void 显示多行文本内容

lcdShowBitmap: (uri: string) => void 显示位图图像

lcdShowDigital: (digital: string) => void 显示价格内容

其余用作打印的 API商米内置打印机服务文档,更多示例见example

接下来

  • 打印文件接口
  • 指令集打印
  • 钱箱控制
  • LCD 客显控制接口
  • 配置式 API

License

MIT