@jacob-gander/react-native-sunmi-printer
v1.9.1
Published
商米内置打印
Downloads
11
Maintainers
Readme
@heasy/react-native-sunmi-printer
Caution: this is not the official project. I share it because I am working on this device but no any official support in react-native It's welcome to ask any question about the usage,problems or feature required, I will support ASAP.
Offical Demos plz refer: https://github.com/shangmisunmi/SunmiPrinterDemo
TOC
Installation:
Using npm:
npm install @heasy/react-native-sunmi-printer --save
or using yarn:
yarn add @heasy/react-native-sunmi-printer
Linking
Automatic linking is supported for all platforms (even windows on React native >= 0.63!)
Previous versions need to do manual linking.
Usage
import SunmiPrinter from '@heasy/react-native-sunmi-printer';
SunmiPrinter.printerText('Hello World\n');
Scan
import { SunmiScan } from '@heasy/react-native-sunmi-printer';
useEffect(() => {
DeviceEventEmitter.addListener('onScanSuccess', (msg) => {
console.log('result', msg);
});
return () => DeviceEventEmitter.removeAllListeners('onScanSuccess');
}, []);
SunmiScan.scan();
API
The example app in this repository shows an example usage of every single API, consult the example app if you have questions, and if you think you see a problem make sure you can reproduce it using the example app before reporting it, thank you.
| Method | Return Type | iOS | Android | Windows | Web |
| ----------------------------------------------------------------------- | ----------------- | :-: | :-----: | :-----: | :-: |
| printerInit() | null
| ❌ | ✅ | ❌ | ❌ |
| printerSelfChecking() | null
| ❌ | ✅ | ❌ | ❌ |
| getPrinterSerialNo() | Promise<string>
| ❌ | ✅ | ❌ | ❌ |
| getPrinterVersion() | Promise<string>
| ❌ | ✅ | ❌ | ❌ |
| getServiceVersion() | Promise<string>
| ❌ | ✅ | ❌ | ❌ |
| getPrinterModal() | Promise<string>
| ❌ | ✅ | ❌ | ❌ |
| getPrinterPaper() | Promise<string>
| ❌ | ✅ | ❌ | ❌ |
| getPrintedLength() | null
| ❌ | ✅ | ❌ | ❌ |
| updatePrinterState() | Promise<number>
| ❌ | ✅ | ❌ | ❌ |
| sendRAWData() | null
| ❌ | ✅ | ❌ | ❌ |
| setPrinterStyle() | null
| ❌ | ✅ | ❌ | ❌ |
| setAlignment() | null
| ❌ | ✅ | ❌ | ❌ |
| setFontName() | null
| ❌ | ✅ | ❌ | ❌ |
| setFontSize() | null
| ❌ | ✅ | ❌ | ❌ |
| setFontWeight() | null
| ❌ | ✅ | ❌ | ❌ |
| printerText() | null
| ❌ | ✅ | ❌ | ❌ |
| printTextWithFont() | null
| ❌ | ✅ | ❌ | ❌ |
| printOriginalText() | null
| ❌ | ✅ | ❌ | ❌ |
| printColumnsText() | null
| ❌ | ✅ | ❌ | ❌ |
| printColumnsString() | null
| ❌ | ✅ | ❌ | ❌ |
| printBarCode() | null
| ❌ | ✅ | ❌ | ❌ |
| printQRCode() | null
| ❌ | ✅ | ❌ | ❌ |
| print2DCode() | null
| ❌ | ✅ | ❌ | ❌ |
| commitPrint() | null
| ❌ | ✅ | ❌ | ❌ |
| enterPrinterBuffer() | null
| ❌ | ✅ | ❌ | ❌ |
| exitPrinterBuffer() | null
| ❌ | ✅ | ❌ | ❌ |
| commitPrinterBuffer() | null
| ❌ | ✅ | ❌ | ❌ |
| commitPrinterBufferWithCallbacka() | null
| ❌ | ✅ | ❌ | ❌ |
| lineWrap() | null
| ❌ | ✅ | ❌ | ❌ |
| cutPaper() | null
| ❌ | ✅ | ❌ | ❌ |
| getCutPaperTimes() | Promise<number>
| ❌ | ✅ | ❌ | ❌ |
| openDrawer() | null
| ❌ | ✅ | ❌ | ❌ |
| getDrawerStatus() | null
| ❌ | ✅ | ❌ | ❌ |
| printBitmap() | null
| ❌ | ✅ | ❌ | ❌ |
| printBitmapCustom() | null
| ❌ | ✅ | ❌ | ❌ |
Broadcast-Event-Listener
You can enable Output Via Broadcast
option in your SUNMI Device Scanner's Settings
and then listen the onScanSuccess
Event with the result
.
You have to use physical special key buttons on your SUNMI device or soft floating button on your device (if you enabled that) to trigger infrared scanning for the barcodes . And then afterwards , you can get the result in the onScanSuccess
event.
useEffect(() => {
DeviceEventEmitter.addListener('onScanSuccess', (msg) => {
console.log('result', msg);
});
return () => DeviceEventEmitter.removeAllListeners('onScanSuccess');
}, []);
Contributing
See the contributing guide to learn how to contribute to the repository and the development workflow.
License
MIT