import { NativeModules } from 'react-native'; import type { PrinterSeriesName, PrinterLanguage, BarcodeType, BarcodeHRI, QRCodeLevel, QRCodeType, EposColor, EposMode, EposHalftone, DrawerKickConnector, } from './types'; const { EscPosPrinter } = NativeModules; export const nativeConstants = EscPosPrinter.getConstants(); const { EPOS2_TM_M10, EPOS2_TM_M30, EPOS2_TM_P20, EPOS2_TM_P60, EPOS2_TM_P60II, EPOS2_TM_P80, EPOS2_TM_T20, EPOS2_TM_T60, EPOS2_TM_T70, EPOS2_TM_T81, EPOS2_TM_T82, EPOS2_TM_T83, EPOS2_TM_T88, EPOS2_TM_T90, EPOS2_TM_T90KP, EPOS2_TM_U220, EPOS2_TM_U330, EPOS2_TM_L90, EPOS2_TM_H6000, EPOS2_TM_T83III, EPOS2_TM_T100, EPOS2_TM_M30II, EPOS2_TS_100, EPOS2_TM_M50, COMMAND_ADD_TEXT, COMMAND_ADD_NEW_LINE, COMMAND_ADD_TEXT_STYLE, COMMAND_ADD_TEXT_SIZE, COMMAND_ADD_TEXT_SMOOTH, COMMAND_ADD_ALIGN, COMMAND_ADD_IMAGE, COMMAND_ADD_IMAGE_BASE_64, COMMAND_ADD_IMAGE_ASSET, COMMAND_ADD_BARCODE, COMMAND_ADD_QRCODE, COMMAND_ADD_CUT, COMMAND_ADD_DATA, COMMAND_ADD_PULSE, COMMAND_ADD_TEXT_AS_IMAGE, COMMAND_ADD_TEXT_COLUMNS_AS_IMAGE, EPOS2_ALIGN_LEFT, EPOS2_ALIGN_RIGHT, EPOS2_ALIGN_CENTER, EPOS2_TRUE, EPOS2_FALSE, EPOS2_LANG_EN, EPOS2_LANG_JA, EPOS2_LANG_ZH_CN, EPOS2_LANG_ZH_TW, EPOS2_LANG_KO, EPOS2_LANG_TH, EPOS2_LANG_VI, EPOS2_LANG_MULTI, EPOS2_HRI_NONE, EPOS2_HRI_ABOVE, EPOS2_HRI_BELOW, EPOS2_HRI_BOTH, EPOS2_BARCODE_UPC_A, EPOS2_BARCODE_UPC_E, EPOS2_BARCODE_EAN13, EPOS2_BARCODE_JAN13, EPOS2_BARCODE_EAN8, EPOS2_BARCODE_JAN8, EPOS2_BARCODE_CODE39, EPOS2_BARCODE_ITF, EPOS2_BARCODE_CODABAR, EPOS2_BARCODE_CODE93, EPOS2_BARCODE_CODE128, EPOS2_BARCODE_GS1_128, EPOS2_BARCODE_GS1_DATABAR_OMNIDIRECTIONAL, EPOS2_BARCODE_GS1_DATABAR_TRUNCATED, EPOS2_BARCODE_GS1_DATABAR_LIMITED, EPOS2_BARCODE_GS1_DATABAR_EXPANDED, EPOS2_BARCODE_CODE128_AUTO, EPOS2_SYMBOL_QRCODE_MODEL_1, EPOS2_SYMBOL_QRCODE_MODEL_2, EPOS2_SYMBOL_QRCODE_MICRO, EPOS2_LEVEL_L, EPOS2_LEVEL_M, EPOS2_LEVEL_Q, EPOS2_LEVEL_H, EPOS2_COLOR_1, EPOS2_COLOR_2, EPOS2_COLOR_3, EPOS2_COLOR_4, EPOS2_MODE_MONO, EPOS2_MODE_GRAY16, EPOS2_MODE_MONO_HIGH_DENSITY, EPOS2_HALFTONE_DITHER, EPOS2_HALFTONE_ERROR_DIFFUSION, EPOS2_HALFTONE_THRESHOLD, EPOS2_DRAWER_2PIN, EPOS2_DRAWER_5PIN, } = nativeConstants; export const PRINTING_COMMANDS = { COMMAND_ADD_TEXT, COMMAND_ADD_NEW_LINE, COMMAND_ADD_TEXT_STYLE, COMMAND_ADD_TEXT_SIZE, COMMAND_ADD_TEXT_SMOOTH, COMMAND_ADD_ALIGN, COMMAND_ADD_IMAGE, COMMAND_ADD_IMAGE_BASE_64, COMMAND_ADD_IMAGE_ASSET, COMMAND_ADD_BARCODE, COMMAND_ADD_QRCODE, COMMAND_ADD_CUT, COMMAND_ADD_DATA, COMMAND_ADD_PULSE, COMMAND_ADD_TEXT_AS_IMAGE, COMMAND_ADD_TEXT_COLUMNS_AS_IMAGE, }; export const EPOS_BOOLEANS = { EPOS2_TRUE, EPOS2_FALSE, }; export const PRINTING_ALIGNMENT = { left: EPOS2_ALIGN_LEFT, right: EPOS2_ALIGN_RIGHT, center: EPOS2_ALIGN_CENTER, }; export const PRINTER_SERIES: { [key in PrinterSeriesName]: number } = { EPOS2_TM_M10, EPOS2_TM_M30, EPOS2_TM_P20, EPOS2_TM_P60, EPOS2_TM_P60II, EPOS2_TM_P80, EPOS2_TM_T20, EPOS2_TM_T60, EPOS2_TM_T70, EPOS2_TM_T81, EPOS2_TM_T82, EPOS2_TM_T83, EPOS2_TM_T88, EPOS2_TM_T90, EPOS2_TM_T90KP, EPOS2_TM_U220, EPOS2_TM_U330, EPOS2_TM_L90, EPOS2_TM_H6000, EPOS2_TM_T83III, EPOS2_TM_T100, EPOS2_TM_M30II, EPOS2_TS_100, EPOS2_TM_M50, }; export const FONT_A_CHARS_PER_LINE: Partial< { [key in PrinterSeriesName]: { 58?: number; 60?: number; 80?: number }; } > = { EPOS2_TM_M10: { 58: 35, 60: 35, }, EPOS2_TM_M30: { 80: 48, 58: 35, 60: 35, }, EPOS2_TM_M30II: { 80: 42, 58: 32, 60: 32, }, EPOS2_TM_P20: { 58: 32, 60: 35, }, EPOS2_TM_P60: { 58: 35, 60: 35, }, EPOS2_TM_P60II: { 58: 35, 60: 36, }, EPOS2_TM_P80: { 80: 42, }, EPOS2_TM_T20: { 80: 48, 58: 35, 60: 35, }, EPOS2_TM_T60: { 80: 42, }, EPOS2_TM_T70: { 80: 42, }, EPOS2_TM_T81: { 80: 42, }, EPOS2_TM_T82: { 80: 48, 58: 35, 60: 35, }, EPOS2_TM_T83: { 80: 42, }, EPOS2_TM_T83III: { 80: 42, }, EPOS2_TM_T88: { 80: 42, 58: 30, 60: 30, }, EPOS2_TM_T90: { 80: 42, 60: 30, 58: 30, }, EPOS2_TM_T100: { 80: 42, }, EPOS2_TM_U220: { 80: 35, 58: 27, 60: 27, }, EPOS2_TM_U330: { 80: 33, 58: 25, 60: 25, }, EPOS2_TM_L90: { 80: 42, 58: 30, 60: 30, }, EPOS2_TM_H6000: { 80: 42, 58: 30, 60: 30, }, }; export const DEFAULT_FONT_A_CHARS_PER_LINE = { 80: 42, 58: 30, 60: 30, }; export const DEFAULT_PAPER_WIDTHT = 60; export const PRINTER_LANGUAGE: { [key in PrinterLanguage]: number } = { EPOS2_LANG_EN, EPOS2_LANG_JA, EPOS2_LANG_ZH_CN, EPOS2_LANG_ZH_TW, EPOS2_LANG_KO, EPOS2_LANG_TH, EPOS2_LANG_VI, EPOS2_LANG_MULTI, }; export const BARCODE_TYPE: { [key in BarcodeType]: number } = { EPOS2_BARCODE_UPC_A, EPOS2_BARCODE_UPC_E, EPOS2_BARCODE_EAN13, EPOS2_BARCODE_JAN13, EPOS2_BARCODE_EAN8, EPOS2_BARCODE_JAN8, EPOS2_BARCODE_CODE39, EPOS2_BARCODE_ITF, EPOS2_BARCODE_CODABAR, EPOS2_BARCODE_CODE93, EPOS2_BARCODE_CODE128, EPOS2_BARCODE_GS1_128, EPOS2_BARCODE_GS1_DATABAR_OMNIDIRECTIONAL, EPOS2_BARCODE_GS1_DATABAR_TRUNCATED, EPOS2_BARCODE_GS1_DATABAR_LIMITED, EPOS2_BARCODE_GS1_DATABAR_EXPANDED, EPOS2_BARCODE_CODE128_AUTO, }; export const BARCODE_HRI: { [key in BarcodeHRI]: number } = { EPOS2_HRI_NONE, EPOS2_HRI_ABOVE, EPOS2_HRI_BELOW, EPOS2_HRI_BOTH, }; export const QRCODE_TYPE: { [key in QRCodeType]: number } = { EPOS2_SYMBOL_QRCODE_MODEL_1, EPOS2_SYMBOL_QRCODE_MODEL_2, EPOS2_SYMBOL_QRCODE_MICRO, }; export const QRCODE_LEVEL: { [key in QRCodeLevel]: number } = { EPOS2_LEVEL_L, EPOS2_LEVEL_M, EPOS2_LEVEL_Q, EPOS2_LEVEL_H, }; export const EPOS_COLOR: { [key in EposColor]: number } = { EPOS2_COLOR_1, EPOS2_COLOR_2, EPOS2_COLOR_3, EPOS2_COLOR_4, }; export const EPOS_MODE: { [key in EposMode]: number } = { EPOS2_MODE_MONO, EPOS2_MODE_GRAY16, EPOS2_MODE_MONO_HIGH_DENSITY, }; export const EPOS_HALFTONE: { [key in EposHalftone]: number } = { EPOS2_HALFTONE_DITHER, EPOS2_HALFTONE_ERROR_DIFFUSION, EPOS2_HALFTONE_THRESHOLD, }; export const EPOS_DRAWER_KICK_CONNECTOR: { [key in DrawerKickConnector]: number; } = { EPOS2_DRAWER_2PIN, EPOS2_DRAWER_5PIN, }; export const PRINT_TIMEOUT_MIN = 5000; export const PRINT_TIMEOUT_MAX = 600000;