- Supports BLE, LAN, USB and Wi-Fi connection methods
- Print receipts natively and from React Native views
- Compatible with the new architecture
- Build-in queue mechanism
- Clear errors descriptions
- Proxy-like API makes it easy to add new commands
Warning
For react-native lower than 0.76.x version, use react-native-esc-pos-printer 4.3.3 or lower
yarn add react-native-esc-pos-printer
npx expo install react-native-esc-pos-printer
npx expo prebuild
Also complete this required steps
import { usePrintersDiscovery } from 'react-native-esc-pos-printer';
function App() {
const { start, isDiscovering, printers } =
usePrintersDiscovery();
useEffect(() => {
start();
}, []);
}
import { Printer } from 'react-native-esc-pos-printer';
function App() {
const { start, isDiscovering, printers } =
usePrintersDiscovery();
useEffect(() => {
start();
}, []);
const print = () => {
// printing on all discovered printers
printers.forEach(printersData => {
const printerInstance = new Printer({
target: printersData.target,
deviceName: printersData.deviceName,
});
const res = await printerInstance.addQueueTask(async () => {
await Printer.tryToConnectUntil(
printerInstance,
(status) => status.online.statusCode === PrinterConstants.TRUE
);
await printerInstance.addText('DUDE!');
await printerInstance.addFeedLine();
await printerInstance.addCut();
const result = await printerInstance.sendData();
await printerInstance.disconnect();
return result;
})
})
}
return <Button title="Print" onPress={print} />;
}
If you like what I'm doing and want to support me, you can:
-
It's not possible to print and discover on Android simulator.
-
If you have an issue with using Flipper on iOS real device, try this workaround.
MIT