Plugin ESC POS v3

Plugin para impresoras térmicas versión 3

Me complace anunciar la versión 3 (y final) de mi plugin que permite imprimir en impresoras térmicas de manera gratuita.

Este plugin combina lo mejor de las otras versiones en una sola. A continuación veamos sus principales características:

  1. Impresión de texto
  2. Impresión de texto con acentos, definiendo la página de códigos de caracteres o code page. Podrás imprimir texto con ñ, vocales con tilde, diéresis, etcétera.
  3. Soporte para imágenes de una URL de internet (puede ser incluso localhost), en base64 o del almacenamiento local
  4. Códigos de barras
  5. Códigos QR
  6. Cambio de tamaño de texto
  7. Subrayado
  8. Enfatizado
  9. Alineación
  10. Apertura de cajón
  11. Corte de papel
  12. Rotación al imprimir
  13. Impresión inversa
  14. Impresión blanco y negro inversa
  15. No necesita internet. Trabaja completamente fuera de línea
  16. No tiene restricción de cantidad de tickets, dominios ni lenguajes de programación.
  17. Definición de caracteres personalizados de 24×12, con esto podrás definir un propio carácter usando una cuadrícula. Ya podrás imprimir el símbolo del euro, yen, bitcoin, centavo y cualquier cosa que se pueda representar con 24×12 puntos
  18. Compatible con Windows, Linux y Raspberry Pi (técnicamente compatible con Raspbian en procesadores ARM)
  19. Impresión de HTML a partir de código o de la dirección de la página
  20. Varios algoritmos de impresión de imágenes para soportar varias impresoras, ya sean nuevas o antiguas
  21. Dithering en imágenes para conservar detalles como la iluminación al imprimir fotografías

Además, existirá una versión con licencia en caso de que quieras adquirirla. A continuación explicaré todos los detalles del plugin.

Diseñador para impresoras térmicas

Acabo de crear un diseñador de recibos para impresoras térmicas en donde podrás diseñar tickets ESC POS, importar, exportar, generar el código para varios lenguajes de programación y revisar una guía paso a paso para descargar, instalar y usar el plugin. Pruébalo en: https://parzibyte.me/apps/ticket-designer/#/first-steps

Documentación

Este plugin traduce un objeto JSON a comandos ESC POS a través de una API HTTP. Puedes ver toda la documentación del plugin o terminar de leer este post, ambos contienen la información necesaria para imprimir en una impresora térmica con una API unificada desde JavaScript o cualquier lenguaje.

Configurando impresora y herramienta

Para que el código funcione necesitas el servidor local ejecutándose y que tu impresora esté compartida. Por favor, sigue los pasos que aparecen en la página previamente enlazada, ya que ahí está la API unificada.

También puedes revisar la documentación completa de la API.

Hola impresora

Es momento de visitar https://parzibyte.me/http-esc-pos-desktop-docs/es/area-pruebas.html?operacion=EscribirTexto (por favor, mira bien la URL), debe aparecer algo como lo siguiente en donde podrás imprimir un ticket de prueba y revisar si tu impresora y el plugin están configurados correctamente:

Configurar API HTTP a ESC POS impresora térmica

Selecciona tu impresora de la lista y haz clic en Hacer petición. Te repito que el plugin solo funciona en impresoras físicas y térmicas. Si tu impresora no aparece, asegúrate de haberla instalado y compartido correctamente.

Debe imprimirse un hola mundo. Más adelante podrás imprimir tickets más sofisticados como el siguiente:

Ticket impreso con impresora Xprinter usando plugin – Soporta imágenes, códigos QR, de barras y acentos

O como el siguiente:

Por favor nota todo lo que el plugin soporta, y fíjate en el carácter personalizado. Con eso puedes definir tus propios caracteres en una cuadrícula de 24×12.

Sin saberlo ya has consumido la API usando JavaScript del lado del cliente. Puedes ver el código generado para que veas que es realmente sencillo.

Nota: yo he usado una impresora muy económica y sencilla. Si funciona con la mía, funcionará con la tuya. También está disponible una lista de impresoras compatibles.

Nota 2: toda la documentación está en la página del plugin JSON HTTP a ESC POS.

Revisando errores del plugin

Se van a crear algunos archivos de registro en la ubicación del plugin. Tienen el nombre del mes y año. Por ejemplo, en octubre de 2022 se llamará 2022_10.log.

Ahí aparecerán todos los errores o avisos. Si el plugin falla, por favor lee los mensajes de error y/o tradúcelos para saber lo que tienes que hacer.

El error open Impresora: the network name cannot be found o La ruta de acceso especificada no es válida es debido a que no has compartido tu impresora, no has especificado la impresora o estás intentando imprimir en una impresora en red local, cosa que no es posible. La impresora debe estar conectada en la computadora donde se ejecuta el plugin y debe estar compartida.

En caso de que haya un error al imprimir, se devolverá un objeto con la propiedad ok en false y el mensaje de error en message, como se describe en la API.

Cambiando el puerto del plugin

Si quieres puedes cambiar el puerto del plugin pasándole la opción en la línea de comandos. En este caso debes ejecutarlo desde la terminal así:

plugin_impresoras_termicas_v3_prod_64.exe --puerto=PUERTO

O puedes crear un acceso directo (aprovechando también para que inicie junto con el sistema, cosa que explico más adelante) y pasarle la opción desde ahí:

Cambiando puerto del plugin

En este caso estoy indicando que quiero que ocupe el puerto 8484. Tú puedes elegir el puerto que prefieras, siempre y cuando sea válido. Recuerda que el puerto por defecto es el 8000.

Nota: si cambias el puerto de escucha del plugin, también debes cambiar la URL al momento de invocar a los conectores.

Contratar una licencia

Por favor, lee el siguiente post en donde lo explico con detenimiento: https://parzibyte.me/blog/2022/10/02/contratar-licencia-para-plugin-impresora-termica-v3/

Lenguajes disponibles

El plugin expone una API HTTP REST donde, al enviarle un JSON, imprimirá dichas operaciones en la impresora térmica. Puedes usar cualquier lenguaje de programación para consumir la API.

Aquí tengo algunos ejemplos en PHP, C#, Java, Python, Node.js y de JavaScript. Más ejemplos vienen en camino.

Iniciar plugin junto con el sistema

Si quieres puedes hacer que el plugin inicie con Windows, solo debes crear el acceso directo en el Startup folder (recuerda que en el mismo acceso directo puedes configurar el puerto).

Más información en el siguiente enlace: https://parzibyte.me/blog/2019/10/14/ejecutar-programa-inicio-windows/

Un usuario del plugin me ha comentado que, en Windows, se puede crear una tarea programada para ejecutar el plugin al encender la computadora.

Usuarios de Linux

No puse instrucciones sobre cómo iniciar automáticamente en Linux o pasar la opción del cambio de puerto, pero si eres de Linux ya debes saber cómo hacerlo, hay muchas maneras ya que ese sistema es más personalizable.

Usuarios de Android

Ya existe un plugin para imprimir en impresoras térmicas Bluetooth desde Android, es uno distinto al presentado en este post pero que cumple con la misma función. Mira los detalles en: https://parzibyte.me/blog/2022/11/01/plugin-gratuito-impresoras-termicas-bluetooth-android/

Versiones anteriores

Antes de existir esta versión existieron la versión 1 y 2. Esas versiones ya no están disponibles, solo están como código fuente para evitar confusiones con esta versión.

El plugin versión 3 es la única versión disponible para su uso.

Documentación y métodos del plugin

Los conectores disponibles manejan el mismo número de argumentos y funciones. ya que al final solo sirven de puente para comunicarse con el plugin. A continuación dejaré los métodos y la documentación escrita por mí.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

1 semana hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 semanas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 semanas hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

2 semanas hace

Esta web usa cookies.