This document provides detailed descriptions of all API interfaces in react-native-printer-imin.
- Basic APIs
- Text Printing
- Image Printing
- QR Code Printing
- Barcode Printing
- Table Printing
- Device Control
- SDK 2.0 APIs
- Label Printing
- Type Definitions
Initialize the printer.
initPrinter(): Promise<string>Returns: Promise - Initialization result message
Example:
try {
const result = await PrinterImin.initPrinter();
console.log('Initialization successful:', result);
} catch (error) {
console.error('Initialization failed:', error);
}Get current printer status.
getPrinterStatus(): Promise<{code: number, message: string}>Returns:
code: Status code (0 means normal)message: Status description
Example:
const status = await PrinterImin.getPrinterStatus();
if (status.code === 0) {
console.log('Printer normal:', status.message);
} else {
console.error('Printer error:', status.message);
}Listen for printer status broadcasts.
receiveBroadcastStream: {
listen(callback: (payload: {eventName: string, eventData: any}) => void): () => void
}Parameters:
callback: Callback function that receives broadcast data
Returns: Function to cancel listening
Example:
const unsubscribe = PrinterImin.receiveBroadcastStream.listen((payload) => {
console.log('Event name:', payload.eventName);
console.log('Event data:', payload.eventData);
});
// Cancel listening
unsubscribe();Print text content.
printText(text: string, style?: IminTextStyle): Promise<void>Parameters:
text: Text to printstyle: Optional text style
IminTextStyle Interface:
interface IminTextStyle {
wordWrap?: boolean; // Auto line wrap
fontSize?: number; // Font size
space?: number; // Line spacing
width?: number; // Text width
typeface?: IminTypeface; // Font type
fontStyle?: IminFontStyle; // Font style
align?: IminPrintAlign; // Alignment
}Example:
// Basic text printing
await PrinterImin.printText('Hello World');
// Styled text printing
await PrinterImin.printText('Title Text', {
fontSize: 32,
align: IminPrintAlign.center,
fontStyle: IminFontStyle.bold
});Print inverted text (white text on black background).
printAntiWhiteText(text: string, style?: IminTextStyle): Promise<void>Parameters: Same as printText()
Example:
await PrinterImin.printAntiWhiteText('Important Notice', {
fontSize: 24,
align: IminPrintAlign.center
});Set text size.
setTextSize(size: number): Promise<void>Set font type.
setTextTypeface(typeface: IminTypeface): Promise<void>Set font style.
setTextStyle(style: IminFontStyle): Promise<void>Set alignment.
setAlignment(align: IminPrintAlign): Promise<void>Set line spacing.
setTextLineSpacing(spacing: number): Promise<void>Set text width.
setTextWidth(width: number): Promise<void>Print a single image.
printSingleBitmap(uri: string, pictureStyle?: IminPictureStyle): Promise<void>Parameters:
uri: Image URL or local pathpictureStyle: Optional image style
IminPictureStyle Interface:
interface IminPictureStyle {
width?: number; // Image width
height?: number; // Image height
align?: IminPrintAlign; // Alignment
}Example:
// Basic image printing
await PrinterImin.printSingleBitmap('https://example.com/logo.png');
// Styled image printing
await PrinterImin.printSingleBitmap('https://example.com/logo.png', {
width: 200,
height: 100,
align: IminPrintAlign.center
});Print multiple images.
printMultiBitmap(imgs: string[], pictureStyle?: IminPictureStyle): Promise<void>Parameters:
imgs: Array of image URLspictureStyle: Optional image style
Print inverted image.
printSingleBitmapBlackWhite(uri: string, baseStyle?: IminBaseStyle): Promise<void>Print QR code.
printQrCode(data: string, qrCodeStyle?: IminQrCodeStyle): Promise<void>Parameters:
data: QR code contentqrCodeStyle: Optional QR code style
IminQrCodeStyle Interface:
interface IminQrCodeStyle {
qrSize?: number; // QR code size
align?: IminPrintAlign; // Alignment
leftMargin?: number; // Left margin
errorCorrectionLevel?: IminQrcodeCorrectionLevel; // Error correction level
}Example:
await PrinterImin.printQrCode('https://www.example.com', {
qrSize: 6,
align: IminPrintAlign.center,
errorCorrectionLevel: IminQrcodeCorrectionLevel.levelH
});Print double QR codes.
printDoubleQR(
qrCode1: IminDoubleQRCodeStyle,
qrCode2: IminDoubleQRCodeStyle,
doubleQRSize: number
): Promise<void>IminDoubleQRCodeStyle Interface:
interface IminDoubleQRCodeStyle {
text: string; // QR code content
level?: number; // Error level
leftMargin?: number; // Left margin
version?: number; // Version
}setQrCodeSize(qrSize: number): Promise<void>setLeftMargin(margin: number): Promise<void>setQrCodeErrorCorrectionLev(level: IminQrcodeCorrectionLevel): Promise<void>Print barcode.
printBarCode(
barCodeType: IminBarcodeType,
barCodeContent: string,
style?: IminBarCodeStyle
): Promise<void>Parameters:
barCodeType: Barcode typebarCodeContent: Barcode contentstyle: Optional barcode style
IminBarCodeStyle Interface:
interface IminBarCodeStyle {
width?: number; // Barcode width
height?: number; // Barcode height
position?: IminBarcodeTextPos; // Text position
align?: IminPrintAlign; // Alignment
}Example:
await PrinterImin.printBarCode(
IminBarcodeType.code128,
'1234567890',
{
width: 2,
height: 100,
position: IminBarcodeTextPos.belowText,
align: IminPrintAlign.center
}
);setBarCodeWidth(width: number): Promise<void>setBarCodeHeight(height: number): Promise<void>setBarCodeContentPrintPos(position: IminBarcodeTextPos): Promise<void>Print table/column text.
printColumnsText(cols: ColumnMaker[]): Promise<void>ColumnMaker Interface:
interface ColumnMaker {
text: string; // Column content
width: number; // Column width
align: IminPrintAlign; // Alignment
fontSize: number; // Font size
}Example:
await PrinterImin.printColumnsText([
{
text: 'Product Name',
width: 3,
fontSize: 20,
align: IminPrintAlign.left
},
{
text: 'Qty',
width: 1,
fontSize: 20,
align: IminPrintAlign.center
},
{
text: 'Price',
width: 2,
fontSize: 20,
align: IminPrintAlign.right
}
]);Feed paper one line.
printAndLineFeed(): Promise<void>Feed paper specified height.
printAndFeedPaper(height: number): Promise<void>Parameters:
height: Paper feed height (1-1016)
Set paper format.
setPageFormat(style?: number): Promise<void>Parameters:
style: Paper format (0-80mm, 1-58mm)
Cut paper (only for devices with cutter).
partialCut(): Promise<void>Open cash drawer.
openCashBox(): Promise<void>Reset printer.
resetDevice(): Promise<void>Set initialize printer.
setInitIminPrinter(isDefault: boolean): Promise<void>getPrinterSerialNumber(): Promise<string>getPrinterModelName(): Promise<string>getPrinterFirmwareVersion(): Promise<string>getPrinterHardwareVersion(): Promise<string>getPrinterDensity(): Promise<number>
setPrinterDensity(density: number): Promise<void>getPrinterSpeed(): Promise<number>
setPrinterSpeed(speed: number): Promise<void>enterPrinterBuffer(isClean: boolean): Promise<void>commitPrinterBuffer(): Promise<void>exitPrinterBuffer(isCommit: boolean): Promise<void>printTextBitmap(text: string, style?: IminTextPictureStyle): Promise<void>IminTextPictureStyle Interface:
interface IminTextPictureStyle {
wordWrap?: boolean;
fontSize?: number;
typeface?: IminTypeface;
fontStyle?: IminFontStyle;
align?: IminPrintAlign;
letterSpacing?: number;
underline?: boolean;
throughline?: boolean;
lineHeight?: number;
reverseWhite?: boolean;
}Initialize label canvas.
labelInitCanvas(labelCanvasStyle: LabelCanvasStyle): Promise<void>Add text to label.
labelAddText(labelTextStyle: LabelTextStyle): Promise<void>Add barcode to label.
labelAddBarCode(labelBarCodeStyle: LabelBarCodeStyle): Promise<void>Add QR code to label.
labelAddQrCode(labelQrCodeStyle: LabelQrCodeStyle): Promise<void>Add image to label.
labelAddBitmap(labelBitmapStyle: LabelBitmapStyle): Promise<void>Print label canvas.
labelPrintCanvas(printCount: number): Promise<{result: string, resultCode: number}>enum IminPrintAlign {
left = 0,
center = 1,
right = 2
}enum IminFontStyle {
normal = 0,
bold = 1,
italic = 2,
boldItalic = 3
}enum IminTypeface {
Default = 0,
Monospace = 1,
DefaultBold = 2,
SansSerif = 3,
Serif = 4
}enum IminQrcodeCorrectionLevel {
levelL = 48,
levelM = 49,
levelQ = 50,
levelH = 51
}enum IminBarcodeType {
upcA = 0,
upcE = 1,
jan13 = 2,
jan8 = 3,
code39 = 4,
itf = 5,
codabar = 6,
code93 = 7,
code128 = 8
}enum IminBarcodeTextPos {
none = 0,
aboveText = 1,
belowText = 2,
both = 3
}Enable/disable debug logs.
openLogs(open: number): Promise<void>Parameters:
open: 1-enable, 0-disable
Send raw hexadecimal data.
sendRAWDataHexStr(byteStr: string): Promise<void>All API methods return Promises and can be handled with try-catch:
try {
await PrinterImin.printText('Test text');
} catch (error) {
console.error('Print failed:', error);
// Check specific error types
if (error.toString().includes('paper')) {
// Handle paper out error
} else if (error.toString().includes('temperature')) {
// Handle overheating error
}
}- SDK 1.0: Basic printing features
- SDK 2.0: All 1.0 features + Label printing + Advanced device control
Use PrinterImin.version to check current SDK version.