import { columnsText, fontSize as fs, getLength, AlginType, FontSize } from './print_common'; import HardwareKit from 'qm-hardwarekit'; const Powa = HardwareKit.Powa; const PAGE_ROW_SIZE: number = 51; function startPrint(_: any) { return new Promise(async resolve => { if (Powa) await Powa.begin(); resolve(null); }); } function printText(text: String, fontSize: FontSize = 'middle', algin: AlginType = 0) { fontSize = typeof fontSize === 'number' ? fontSize : fs(fontSize); console.log(text, fontSize, algin); // if (Powa) Powa.printText(text); return new Promise(async resolve => { if (Powa) await Powa.printTextAtImage(text, fontSize, algin); resolve(null); }); } function printlnText(text: String, fontSize: FontSize = 'middle', algin: AlginType = 0) { // printText(text, fontSize, algin); return printText(text + '\n', fontSize, algin); } const printQrCode = text => { console.log(text); return new Promise(resolve => resolve(null)); }; const printBarCode = text => { console.log(text); return new Promise(resolve => resolve(null)); }; function printColumnsText(texts: Array, weights: Array, algins: Array, zoom: boolean = true) { let array = columnsText(texts, weights, algins, PAGE_ROW_SIZE, zoom); return new Promise(async resolve => { array.map(async text => { await printlnText(text); }); resolve(null); }); } function line() { return new Promise(async resolve => { if (Powa) await Powa.lineSplit(); resolve(null); }); } function lineWrap(nums: number) { return new Promise(async resolve => { if (Powa) await Powa.lineWrap(nums); resolve(null); }); } function endPrint() { return new Promise(async resolve => { if (Powa) await lineWrap(4); if (Powa) await Powa.end(); resolve(null); }); } export { printText, printlnText, printQrCode, printBarCode, printColumnsText, lineWrap, line, startPrint, endPrint };