@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