react-native-esc-pos-printer
Version:
An unofficial React Native library for printing on an EPSON TM printer with the Epson ePOS SDK for iOS and Epson ePOS SDK for Android
106 lines (105 loc) • 2.93 kB
JavaScript
"use strict";
import { PrinterWrapper } from "./PrinterWrapper.js";
import { PrinterModelLang } from "./constants/index.js";
import { addTextLine, addViewShot, monitorPrinter, tryToConnectUntil } from "./printHelpers/index.js";
export class Printer {
static instances = new Map();
constructor({
target,
deviceName,
lang = PrinterModelLang.MODEL_ANK
}) {
if (Printer.instances.has(target)) {
return Printer.instances.get(target);
}
this.deviceName = deviceName;
this.lang = lang;
this.printerWrapper = new PrinterWrapper(target);
this.initQueue();
Printer.instances.set(target, this);
}
initQueue() {
const PQueue = require('p-queue/dist').default;
this.queue = new PQueue({
concurrency: 1
});
}
addQueueTask(task) {
return this.queue.add(task);
}
static addTextLine = addTextLine;
static monitorPrinter = monitorPrinter;
static tryToConnectUntil = tryToConnectUntil;
static addViewShot = addViewShot;
get currentFontWidth() {
return this.printerWrapper.currentFontWidth;
}
init = () => {
return this.printerWrapper.init({
deviceName: this.deviceName,
lang: this.lang
});
};
connect = async timeout => {
await this.init();
return this.printerWrapper.connect(timeout);
};
disconnect = () => {
return this.printerWrapper.disconnect();
};
addText = data => {
return this.printerWrapper.addText(data);
};
addFeedLine = line => {
return this.printerWrapper.addFeedLine(line);
};
addLineSpace = linespc => {
return this.printerWrapper.addLineSpace(linespc);
};
sendData = timeout => {
return this.printerWrapper.sendData(timeout);
};
addCut = type => {
return this.printerWrapper.addCut(type);
};
getPrinterSetting = (type, timeout) => {
return this.printerWrapper.getPrinterSetting(type, timeout);
};
getStatus = () => {
return this.printerWrapper.getStatus();
};
addImage = params => {
return this.printerWrapper.addImage(params);
};
addBarcode = params => {
return this.printerWrapper.addBarcode(params);
};
addSymbol = params => {
return this.printerWrapper.addSymbol(params);
};
addCommand = uint8Array => {
return this.printerWrapper.addCommand(uint8Array);
};
addPulse = params => {
return this.printerWrapper.addPulse(params);
};
addTextAlign = params => {
return this.printerWrapper.addTextAlign(params);
};
addTextSize = async params => {
await this.printerWrapper.addTextSize(params);
};
addTextSmooth = smooth => {
return this.printerWrapper.addTextSmooth(smooth);
};
addTextStyle = params => {
return this.printerWrapper.addTextStyle(params);
};
addTextLang = lang => {
return this.printerWrapper.addTextLang(lang);
};
clearCommandBuffer = () => {
return this.printerWrapper.clearCommandBuffer();
};
}
//# sourceMappingURL=Printer.js.map