react-native-citizen-escposprinter
A React Native wrapper of the
Citizen ECSPOSPrinter SDK,
supporting the
New Architecture
and classic builds.
The current version embeds these SDKs:
- CSJAndroidPOSSDK_V212E.zip
- CSJiOSSwiftSDK_V212E.zip
Usage
Most of the methods are a simple wrapper of the native SDK. For a complete list
of methods and their details, you may refer to the PDF manual inside the
Citizen SDK.
import {
connect,
cutPaper,
disconnect,
ESCPOSConst,
printText,
searchCitizenPrinters,
} from "react-native-citizen-escposprinter";
const main = async () => {
const printers = await searchCitizenPrinters(
ESCPOSConst.CMP_PORT_WiFi,
);
console.info("Found printers:", printers);
await connect(printers[0].ipAddress);
await printText("Hello World!\n");
await cutPaper(ESCPOSConst.CMP_CUT_FULL_PREFEED);
await disconnect();
};
⚠️ Known Issues
Error RCTEvents.receiveEvent() is not registered
tl;dr Do not use index.tsx
as your entrypoint, use something like app.tsx
instead.
This error happens when all of the following conditions are met:
- You have
expo-router
installed - You have new architecture enabled
- You are using
index.tsx
as your entrypoint
When expo-router's own modified entrypoint sees your index.tsx
, it will be
confused and incorrectly overrides some native modules.
Partial USB Support
USB connections without specified a serial number is supported and tested in the
following environments (see
#7):
- Android in "old" architecture
- Android in
New Architecture
Contributing
See the contributing guide to learn how to contribute to the
repository and the development workflow.
If you use this library at work, consider
sponsoring for a first-class technical
support.