import PrintYly from '../365Device/print_yly'; 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) { PrintYly.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: PrintYly.printText(t); break; case 1: PrintYly.printTextCenter(t); break; case 2: PrintYly.printText(t); break; default: PrintYly.printText(t); break; } resolve(null); }); } function printlnText(text: String, fontSize: FontSize = 'middle', algin: AlginType = 0) { printText(text + '\r\n', 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 => { PrintYly.lineSplit(); resolve(null); }); } function lineWrap(nums: number) { return new Promise(resolve => { PrintYly.lineWrap(nums); resolve(null); }); } const printQrCode = text => { return new Promise(resolve => { PrintYly.printQrCode(text); resolve(null); }); }; const printBarCode = text => { return new Promise(resolve => { PrintYly.printBarCode(text); resolve(null); }); }; function endPrint() { return new Promise(resolve => { PrintYly.lineWrap(2); if (device) PrintYly.commit(device.name, device.address); resolve(null); }); } export { printText, printlnText, printQrCode, printBarCode, printColumnsText, lineWrap, line, startPrint, endPrint };