Hoy vamos a ver cómo imprimir tickets en una impresora térmica con Node.js usando JavaScript del lado del servidor. Me imagino que con esto se podrá imprimir usando express, Electron o cualquier otra cosa.
Toma en cuenta que esto imprimirá en el servidor y que funcionará perfectamente para sistemas locales, pero si vas a subirlo al servidor puede que quieras revisar cómo imprimir del lado del cliente así como ya expliqué el problema que tenemos con PHP.
En estos días he creado un nuevo diseñador web para impresoras térmicas. El diseñador te guiará en el proceso de instalar tu impresora, compartirla e instalar lo necesario para imprimir tus diseños. Pruébalo en:
https://parzibyte.me/apps/ticket-designer/#/first-steps
Una vez que tengas tus diseños vas a poder imprimirlos desde cualquier lenguaje de programación, incluyendo Python.
Como Node.js al final es JavaScript, podemos usar el conector JavaScript que ya existe para comunicarnos con la impresora POS.
Yo lo he tomado de: https://github.com/parzibyte/ejemplos-javascript-plugin-v3/blob/main/ConectorJavaScript.js
Recomiendo que utilices siempre la última versión visitando ese enlace, ya que si actualizo la librería podrás disfrutar de las últimas características. En mi caso lo dejé en la misma carpeta que mi index.js
y lo he importado así:
Si quieres puedes obtener la lista de impresoras térmicas para mostrársela al usuario. Esto es totalmente opcional y solo en caso de que quieras mostrar la lista para que el usuario pueda seleccionar la impresora.
Ahora veamos cómo diseñar un ticket o factura para imprimir en la impresora térmica. Recuerda que también puedes solo abrir el cajón de dinero o cortar el papel, no estás obligado a imprimir algo.
De cualquier modo veamos cómo imprimir un ticket en una impresora térmica desde Node.js además de cortar el papel y abrir el cajón de dinero en caso de que exista:
Si te preguntas, todos los métodos que puedes usar están en la documentación de:
Con lo anterior diseñamos el ticket. Ahora solo falta invocar a imprimirEn
para que se imprima en la impresora que tú indiques según la variable nombreImpresora
.
La impresión devuelve una promesa que al resolverse traerá la respuesta. Si la respuesta es true
, entonces todo fue correcto. En caso de que no sea true, será una cadena con el mensaje de error. Se maneja así:
Con esto, solo es cuestión de ejecutar el archivo. Yo lo he ejecutado con node index.js
pero porque es un ejemplo, obviamente tú puedes poner ese fragmento de código en donde tú prefieras.
Lo presentado aquí es un conector para un plugin gratuito que he desarrollado. Este plugin permite imprimir en impresoras térmicas desde cualquier lenguaje de programación, por ello es que ahora escribí un conector para Node.js.
Entonces antes de usar el código aquí presente debes configurar tu impresora y descargar el plugin.
Para instalar tu impresora y compartirla: https://parzibyte.me/blog/2017/12/11/instalar-impresora-termica-generica/
Después descarga el plugin desde: https://github.com/parzibyte/plugin-impresora-termica-v3/releases/tag/3.2.1
Una vez que hayas hecho todos los pasos necesarios y que veas que el plugin funciona entonces puedes comenzar a imprimir desde Node.js.
Nota: he grabado un vídeo para complementar el post. Míralo aquí.
El código completo que obtiene la lista de impresoras y también imprime en una impresora térmica usando comandos ESC POS queda así:
Te dejo el repositorio completo en GitHub en caso de que haga actualizaciones en el futuro.
A partir de aquí puedes ver la documentación para ver cómo agregar cosas más complejas al ticket. Puedes imprimir caracteres personalizados, códigos QR, códigos de barras, imágenes locales, de internet, en base 64 y también usarla en distintos lenguajes de programación.
De nuevo te dejo con el post de presentación en donde encontrarás más detalles:
En mi blog te he enseñado a usar youtube-dl para descargar vídeos con permiso del…
Siguiendo con los tutoriales que consumen la API de los Bots de Telegram con cURL…
En un post previo te enseñé a enviar un mensaje en nombre de un Bot…
En este artículo te voy a mostrar una guía para imprimir en una impresora térmica…
La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…
Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…
Esta web usa cookies.