A React Native wrapper of the Citizen ECSPOSPrinter SDK, supporting the New Architecture and classic builds.
The current version embeds these SDKs:
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();
};
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.
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
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.