@w3lcome/react-native-brother-printers
Version:
A package that allows you to printer with brother printers
155 lines (142 loc) • 4.28 kB
JavaScript
// main index.js
import { NativeModules, NativeEventEmitter } from "react-native";
const { ReactNativeBrotherPrinters } = NativeModules || {};
export const LabelSizeDieCutW17H54 = 0;
export const LabelSizeDieCutW17H87 = 1;
export const LabelSizeDieCutW23H23 = 2;
export const LabelSizeDieCutW29H42 = 3;
export const LabelSizeDieCutW29H90 = 4;
export const LabelSizeDieCutW38H90 = 5;
export const LabelSizeDieCutW39H48 = 6;
export const LabelSizeDieCutW52H29 = 7;
export const LabelSizeDieCutW62H29 = 8;
export const LabelSizeDieCutW62H100 = 9;
export const LabelSizeDieCutW60H86 = 10;
export const LabelSizeDieCutW54H29 = 11;
export const LabelSizeDieCutW102H51 = 12;
export const LabelSizeDieCutW102H152 = 13;
export const LabelSizeDieCutW103H164 = 14;
export const LabelSizeRollW12 = 15;
export const LabelSizeRollW29 = 16;
export const LabelSizeRollW38 = 17;
export const LabelSizeRollW50 = 18;
export const LabelSizeRollW54 = 19;
export const LabelSizeRollW62 = 20;
export const LabelSizeRollW62RB = 21;
export const LabelSizeRollW102 = 22;
export const LabelSizeRollW103 = 23;
export const LabelSizeDTRollW90 = 24;
export const LabelSizeDTRollW102 = 25;
export const LabelSizeDTRollW102H51 = 26;
export const LabelSizeDTRollW102H152 = 27;
export const LabelSize = {
LabelSizeDieCutW17H54,
LabelSizeDieCutW17H87,
LabelSizeDieCutW23H23,
LabelSizeDieCutW29H42,
LabelSizeDieCutW29H90,
LabelSizeDieCutW38H90,
LabelSizeDieCutW39H48,
LabelSizeDieCutW52H29,
LabelSizeDieCutW62H29,
LabelSizeDieCutW62H100,
LabelSizeDieCutW60H86,
LabelSizeDieCutW54H29,
LabelSizeDieCutW102H51,
LabelSizeDieCutW102H152,
LabelSizeDieCutW103H164,
LabelSizeRollW12,
LabelSizeRollW29,
LabelSizeRollW38,
LabelSizeRollW50,
LabelSizeRollW54,
LabelSizeRollW62,
LabelSizeRollW62RB,
LabelSizeRollW102,
LabelSizeRollW103,
LabelSizeDTRollW90,
LabelSizeDTRollW102,
LabelSizeDTRollW102H51,
LabelSizeDTRollW102H152,
}
export const LabelNames = [
"Die Cut 17mm x 54mm", // 0
"Die Cut 17mm x 87mm", // 1
"Die Cut 23mm x 23mm", // 2
"Die Cut 29mm x 42mm", // 3
"Die Cut 29mm x 90mm", // 4
"Die Cut 38mm x 90mm", // 5
"Die Cut 39mm x 48mm", // 6
"Die Cut 52mm x 29mm", // 7
"Die Cut 62mm x 29mm", // 8
"Die Cut 62mm x 100mm", // 9
"Die Cut 60mm x 86mm", // 10
"Die Cut 54mm x 29mm", // 11
"Die Cut 102mm x 51mm", // 12
"Die Cut 102mm x 152mm", // 13
"Die Cut 103mm x 164mm", // 14
"12mm", // 15
"29mm", // 16
"38mm", // 17
"50mm", // 18
"54mm", // 19
"62mm", // 20
"62mm RB", // 21
"102mm", // 22
"103mm", // 23
"DT 90mm", // 24
"DT 102mm", // 25
"DT 102mm x 51mm", // 26
"DT 102mm x 152mm", // 27
];
/**
* Starts the discovery process for brother printers
*
* @param params
* @param params.V6 If we should searching using IP v6.
* @param params.printerName If we should name the printer something specific.
*
* @return {Promise<void>}
*/
export async function discoverPrinters(params = {}) {
return ReactNativeBrotherPrinters?.discoverPrinters(params);
}
/**
* Checks if a reader is discoverable
*
* @param ip
*
* @return {Promise<void>}
*/
export async function pingPrinter(ip) {
return ReactNativeBrotherPrinters?.pingPrinter(ip);
}
/**
* Prints an image
*
* @param device Device object
* @param uri URI of image wanting to be printed
* @param params
* @param params.autoCut Boolean if the printer should auto cut the receipt/label
* @param params.labelSize Label size that we are printing with
* @param params.isHighQuality
* @param params.isHalftoneErrorDiffusion
*
* @return {Promise<*>}
*/
export async function printImage(device, uri, params = {}) {
if (!params.labelSize) {
return new Error("Label size must be given when printing a label");
}
return ReactNativeBrotherPrinters?.printImage(device, uri, params);
}
// export async function printPDF(device, uri, params = {}) {
// return ReactNativeBrotherPrinters?.printPDF(device, uri, params);
// }
let listeners;
if (ReactNativeBrotherPrinters) {
listeners = new NativeEventEmitter(ReactNativeBrotherPrinters);
}
export function registerBrotherListener(key, method) {
return listeners?.addListener(key, method);
}