Fala galera, estou com um desafio para resolver em node.js electron ou react. Preciso de uma aplicação que envie código ESC/POS para uma impressora térmica, conectada via USB.
Analisei muitas alternativas disponíveis na npm mas nenhuma satisfez minha necessidade.
Atualmente estou com esse código:
const escpos = require("escpos");
// install escpos-usb adapter module manually
escpos.USB = require("escpos-usb");
// Select the adapter based on your printer type
const device = new escpos.USB();
// const device = new escpos.Network('localhost');
// const device = new escpos.Serial('/dev/usb/lp0');
const options = { encoding: "GB18030" /* default */ };
// encoding is optional
const printer = new escpos.Printer(device, options);
device.open(function (error) {
printer
.font("a")
.align("ct")
.style("bu")
.size(1, 1)
.text("The quick brown fox jumps over the lazy dog")
.text("敏捷的棕色狐狸跳过懒狗")
.barcode("1234567", "EAN8")
.table(["One", "Two", "Three"])
.tableCustom(
[
{ text: "Left", align: "LEFT", width: 0.33, style: "B" },
{ text: "Center", align: "CENTER", width: 0.33 },
{ text: "Right", align: "RIGHT", width: 0.33 },
],
{ encoding: "cp857", size: [1, 1] } // Optional
)
.qrimage("https://github.com/song940/node-escpos", function (err) {
this.cut();
this.close();
});
});
Mas retorna o seguinte erro:
[nodemon] starting `node src/index.js`
/home/projetos/pessoal/back-web-printer/node_modules/escpos-usb/index.js:50
throw new Error('Can not find printer');
^
Error: Can not find printer
at new USB (/home/projetos/pessoal/back-web-printer/node_modules/escpos-usb/index.js:50:11)
at Object.<anonymous> (/home/projetos/pessoal/back-web-printer/src/index.js:5:16)
at Module._compile (node:internal/modules/cjs/loader:1256:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
at Module.load (node:internal/modules/cjs/loader:1119:32)
at Module._load (node:internal/modules/cjs/loader:960:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:23:47
Node.js v18.17.1
[nodemon] app crashed - waiting for file changes before starting...
Mesmo que a impressora esteja conectada e com o driver.
Aqui minhas dependências:
"dependencies": {
"body-parser": "^1.20.2",
"cors": "^2.8.5",
"dotenv": "^8.2.0",
"escpos": "^3.0.0-alpha.6",
"escpos-usb": "^3.0.0-alpha.4",
"express": "^4.18.2",
"usb": "^2.11.0"
},
"devDependencies": {
"nodemon": "^3.0.1"
},
Fonte: GitHub - song940/node-escpos: 🖨️ ESC/POS Printer driver for Node.js