import Print365 from '../365Device/print'; import { columnsText, fontSize as fs, AlginType, FontSize, getLength } from './print_common'; // const PAGE_ROW_SIZE: number = 32; const PAGE_ROW_SIZE: number = 28; var device: any = null; function startPrint(info: any) { Print365.clear365Content(); device = info; return new Promise(resolve => resolve(null)); } function printText(text: String, fontSize: FontSize = 'middle', algin: AlginType = 0) { fontSize = typeof fontSize === 'number' ? fontSize : fs(fontSize); let t = fontSize > 24 ? `${text}` : text; return new Promise(resolve => { switch (algin) { case 0: Print365.printText(t); break; case 1: Print365.printTextCenter(t); break; case 2: Print365.printText(t); break; default: Print365.printText(t); break; } resolve(null); }); } function printlnText(text: String, fontSize: FontSize = 'middle', algin: AlginType = 0) { printText(text + '
', fontSize, algin); } function printColumnsText( texts: Array, weights: Array, algins: Array, zoom: boolean = true, ) { return new Promise(resolve => { columnsText(texts, weights, algins, PAGE_ROW_SIZE, zoom).map(async text => { await printlnText(text); }); resolve(null); }); } function line() { return new Promise(resolve => { Print365.lineSplit(); resolve(null); }); } function lineWrap(nums: number) { return new Promise(resolve => { Print365.lineWrap(nums); resolve(null); }); } let printQrCode = text => { return new Promise(resolve => { Print365.printQrCode(text); resolve(null); }); }; let printBarCode = text => { return new Promise(resolve => { Print365.printBarCode(text); resolve(null); }); }; function endPrint() { return new Promise(resolve => { Print365.lineWrap(2); if (device) Print365.commit(device.name, device.address); resolve(null); }); } export { printText, printlnText, printQrCode, printBarCode, printColumnsText, lineWrap, line, startPrint, endPrint };