import { columnsText, fontSize as fs, AlginType, FontSize } from './print_common'; import { create, write, qrcode, barcode, cmd, left, center, right } from '../usb'; let device = null; // const PAGE_ROW_SIZE: number = 32; const PAGE_ROW_SIZE: number = 44; function startPrint(d: any) { device = d; create(); return new Promise(resolve => setTimeout(() => resolve(null), 200)); } function printText(text: String, fontSize: FontSize = 'middle', algin: AlginType = 0) { fontSize = typeof fontSize === 'number' ? fontSize : fs(fontSize); console.log(text, fontSize, algin); switch (algin) { // case 0: _cmd('0x1b,a,0x00'); break; // case 1: _cmd('0x1b,a,0x01'); break; // case 2: _cmd('0x1b,a,0x02'); break; case 0: _left(); break; case 1: _center(); break; case 2: _right(); break; } return new Promise(resolve => { send(text); setTimeout(() => { resolve(null); }, 30); }); } function printlnText(text: String, fontSize: FontSize = 'middle', algin: AlginType = 0) { return printText(text + '\n', fontSize, algin); } const printBarCode = text => { return new Promise(resolve => { _BarCode(text); setTimeout(() => { resolve(null); }, 1500); }); }; const printQrCode = text => { return new Promise(async resolve => { await lineWrap(1); console.log('------ printQrCode -----', text); _QrCode(text); setTimeout(() => { resolve(null); }, 1500); }); }; 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() { var l = ''; for (var i = 0; i < PAGE_ROW_SIZE; ++i) { l += '-'; } return new Promise(async resolve => { await printlnText(l); setTimeout(() => { resolve(null); }, 30); }); } function lineWrap(nums: number) { return new Promise(async resolve => { for (var index = 0; index < nums; ++index) { await printlnText(''); } setTimeout(() => { resolve(null); }, 30); }); } function endPrint() { return new Promise(async resolve => { await lineWrap(1); // setTimeout(() => { // resolve(null); // },50); if (device && device.address == '7540_0483') { if (device) _cmd('29,86,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0'); } setTimeout(() => { if (device) _cmd('27,64'); resolve(null); }, 400); }); } const send = text => { if (device) { let address = device.address; if (address) { write( address.substring(address.lastIndexOf('_') + 1, address.length), address.substring(0, address.lastIndexOf('_')), text, ); } } }; const _QrCode = text => { if (device) { let address = device.address; if (address) { qrcode( address.substring(address.lastIndexOf('_') + 1, address.length), address.substring(0, address.lastIndexOf('_')), text, ); } } }; const _BarCode = text => { if (device) { let address = device.address; if (address) { barcode( address.substring(address.lastIndexOf('_') + 1, address.length), address.substring(0, address.lastIndexOf('_')), text, ); } } }; const _cmd = text => { if (device) { let address = device.address; if (address) { cmd( address.substring(address.lastIndexOf('_') + 1, address.length), address.substring(0, address.lastIndexOf('_')), text, ); } } }; const _center = () => { if (device) { let address = device.address; if (address) { center( address.substring(address.lastIndexOf('_') + 1, address.length), address.substring(0, address.lastIndexOf('_')), ); } } }; const _right = () => { if (device) { let address = device.address; if (address) { right( address.substring(address.lastIndexOf('_') + 1, address.length), address.substring(0, address.lastIndexOf('_')), ); } } }; const _left = () => { if (device) { let address = device.address; if (address) { left( address.substring(address.lastIndexOf('_') + 1, address.length), address.substring(0, address.lastIndexOf('_')), ); } } }; export { printText, printlnText, printBarCode, printColumnsText, lineWrap, line, printQrCode, startPrint, endPrint };