function zebra(commands, options, callback) {
var usb = require('usb')
// IDS da Zebra TLP
var device = usb.findByIds(0x0a5f, 0x000a);
if (device == null) {
callback(new Error('Impressora não localizada'));
return;
}
device.open();
var interface = device.interface(0);
if (interface == null) {
callback(new Error('Interface não localizada'));
return;
}
if (interface.isKernelDriverActive()) {
interface.detachKernelDriver();
}
interface.claim();
var epl2_command = commands.join("\n") + "\n";
var endpoint = interface.endpoint(6);
if (endpoint == null) {
callback(new Error('Endpoint não localizada'));
return;
}
endpoint.transfer(epl2_command, function(err1) {
if (err1) {
callback(err1);
}
interface.release(true, function(err2) {
if (err2) {
callback(err2);
}
device.close();
callback(null);
});
})
}
var commands = [
'N',
'A30,50,0,4,1,1,N,"Titulo 1"',
'A30,80,0,4,1,1,N,"Dados 1"',
'A30,110,0,4,1,1,N,"Dados 2',
'A30,140,0,4,1,1,N,"Dados 3"',
'A30,170,0,4,1,1,N,"Dados4',
'b30,0,P,500,500,"http://www.uol.com.br"', // Codigo de barra 2d, padrão PDF
'P1', // IMPRIMIR UMA ETIQUETA COM OS DADOS ACIMA
];
zebra(commands, console.log.bind(console));
Thanks to: André Racz