我正在尝试使用QZ-Tray打印条形码,但似乎无法找到一个很好的例子,我已经尝试过从此处https://groups.google.com/forum/#!topic/qz-print/5ybFBj4S9LA的代码(其中以此代码开头):
qz.appendHex('x1Bx40'); // init
但是浏览器抛出
qz.appendHex is not a function
等错误。这是我可以打印的代码,但仅显示RAW数据:
function printBarcode() {
console.log("Print barcode");
var config = getUpdatedConfig();
var data = [
'Raw Data\n',
'More Raw Data\n',
'Even More Raw Data\n'
];
qz.print(config, data).catch(function(e) { console.error(e); });
}
该代码可以打印条形码怎么办?
最佳答案
qz.appendHex不是函数等。
那是QZ Tray 1.9的旧代码。是changed in 2.x。
解决方案取决于打印机的功能,但这应该可以帮助您入门。请参考ESC/P programming guide以进一步使用。
//barcode data
var code = '12345';
//convenience method
var chr = function(n) { return String.fromCharCode(n); };
var barcode = '\x1D' + 'h' + chr(80) + //barcode height
'\x1D' + 'f' + chr(0) + //font for printed number
'\x1D' + 'k' + chr(69) + chr(code.length) + code + chr(0); //code39
qz.websocket.connect().then(function() {
var config = qz.configs.create("Epson TM88V");
return qz.print(config, ['\n\n\n\n\n' + barcode + '\n\n\n\n\n']);
}).catch(function(err) { alert(err); });