我正在尝试使用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); });

10-06 03:48