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)

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

Configurando impresora

Antes de usar el plugin debes asegurarte de que tu impresora funciona. Te recomiendo ver el siguiente enlace para instalar y compartir tu impresora: https://parzibyte.me/blog/2017/12/11/instalar-impresora-termica-generica/

Para la Raspberry Pi ya existe un tutorial completo: https://parzibyte.me/blog/2022/10/02/conectar-raspberry-pi-impresora-termica/

Y para Linux solo debes instalar la impresora como se indica en este post, ejecutar el plugin y seguir los mismos pasos.

El plugin es compatible únicamente con impresoras térmicas. No puedo garantizar el funcionamiento en otros tipos de dispositivos.

Descargar plugin

El plugin realmente es gratuito y no tiene ningún tipo de virus. Incluso así, lo descargas bajo tu responsabilidad. Además, si tan inseguro eres puedes descargarlo en una máquina virtual o desarrollar tu propia versión, lo que te parezca más fácil.

Puedes descargarlo del siguiente enlace: https://github.com/parzibyte/plugin-impresora-termica-v3/releases/latest debes descargar el plugin según tu plataforma (Windows, Linux o Raspberry Pi) y luego extraerlo, te dará un archivo ejecutable y un archivo DLL en el caso de Windows.

Si Chrome o tu navegador te dice algo como Este archivo no se descarga habitualmente y puede ser peligroso haz clic en Descargar. Puede que te salgan varios avisos de esos, pero debes dar todos los permisos necesarios, incluyendo el Firewall.

Nota: se maneja el mismo plugin para todos los lenguajes de programación. Es decir, solo es un plugin y varios conectores según el lenguaje de programación.

Ejecutar plugin

Ahora ejecuta el archivo llamado plugin_impresoras_termicas_v3.1_prod_64.exe. Te repito que si te pide permiso debes dárselo. No se abrirá ninguna ventana, pero el plugin ya estará corriendo en segundo plano (Puedes comprobarlo en el administrador de tareas, dentro de detalles)

Es momento de visitar https://parzibyte.github.io/ejemplos-javascript-plugin-v3/capacidades.html (por favor, mira bien la URL), debe aparecer algo como lo siguiente en donde podrás imprimir un ticket de prueba:

Plugin para imprimir en impresoras térmicas

Selecciona tu impresora de la lista y haz clic en Imprimir. 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 ticket como el siguiente:

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

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 usado el conector de JavaScript. Puedes ver el código fuente para que veas que es realmente sencillo, aunque más adelante explicaré el conector por separado.

Nota: yo he usado una impresora muy económica y sencilla. Si funciona con la mía, funcionará con la tuya.

Nota 2: si quieres puedes navegar por los ejemplos de la página: https://parzibyte.github.io/ejemplos-javascript-plugin-v3/hola.html

Navegando por los ejemplos

Si quieres puedes navegar por los ejemplos, aquí te explico cómo hacerlo:

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.

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:

Conectores disponibles

Por el momento existe el conector de PHP, C#, Java, Python, Node.js y de JavaScript. Más conectores vienen en camino, e incluso tú mismo puedes escribirlos según tu lenguaje de programación, ya que al final el plugin es un servidor HTTP.

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/

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:

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.

Versión 1:

Versión 2:

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í.

See the gist on github.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

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

  • cómo puedo hacer que el software del punto de venta abra la caja registradora automático?me puede ayudar 👀

  • Hola Parzi, el plugin me funciona super, lo unico es que no he podido imprimir imagen , siempre me sale :Error al imprimir: Error en el servidor: Error invocando a ImprimirImagenEnBase64: El ancho de la imagen debe ser multiplo de 8. Requiero tu asesoria.

    • Hola. Claro que sí, de hecho el mismo plugin le está diciendo el problema: el ancho de la imagen debe ser múltiplo de 8 (o sea, divisible entre 8). Depende de lo que usted use se puede ajustar eso. Proporciono consultorías y ayuda personalizada en https://parzibyte.me/#contacto

  • Buen dia, tengo problemas para imprimir acentos aun con los botones de los ejemplos.
    En la doc. mencionas que los parametros son num pagina y pagina, de donde saco estos num.
    estoy imprimiendo con una Epson Tm-t88v.
    De antemano Gracias

    • Buen día. Depende de las páginas de códigos que soporte su impresora, eso cambia dependiendo de cada una. Recomiendo probar con varias combinaciones en caso de no encontrar las páginas de códigos de su impresora.
      Recuerde que si necesita ayuda puede enviarme un mensaje en https://parzibyte.me/#contacto para brindarle una consultoría

    • Hola, buenas tardes. Por el momento todavía no, en caso de que exista lo anunciaré por aquí mismo en mi blog

  • Hola, descargue el plugin V3.2 32Bits lo ejecute por el puerto 8585 pues el 8000 se encuentra ocupado. Cuando ingreso a su pagina para imprimir prueba no me aparece ninguna impresora. Agradezco indicarme que hace falta. Gracias

    • Hola. La página de prueba supone que usa el puerto por defecto, en ese caso tendría que dejar el puerto intacto para las pruebas, o ajustar el código de la página de prueba para que envíe la petición al puerto configurado

  • Hola Parzybite, tengo una pregunta al momento de imprimir cualquier ticket siempre sale ese pie de pagina? y otra duda, estoy trabajando en un proyecto de nextjs, me srive perfectamente la versio de javascript?. Gracias igualmente por el recurso

  • hola parzibyte, a mi me funciona perfecto el plugin, solo tengo un problema con la letra ñ y saber como el codigo para detectar las impresoras y dejar guardado el nombre de esa impresora en la base de datos. recien te pague 1 año del plugin. gracias.

  • Amigo yo de nuevo, necesito urgente que me envies la clave a mi e-mail. Al final consegui pagarte por paypal con ayuda de mi hermana, que lo hizo a traves de su cuenta, ya que me presto su tarjeta de crédito. El pago fue emitido por Maria Lemos

  • que tal? gran plugin, me viene salvando pero tengo problemas.
    imprime todo el contenido anterior en cada ticket. para explicarlo mejor voy a ejemplificar.
    entiendase por A y B contenido de tickets distintos.
    si indico que imprima A, imprime A. luego indico que imprima B, imprime A y B. indico que imprima A nuevamente, imprime A B y A.
    lo que necesito es que imprima A, luego B y luego A. por separado, son tickets individuales.
    es como si la impresora guardase en memoria lo que imprimió y cada vez que imprime lo hace con sus impresiones anteriores nuevamente.
    alguna idea de que puede estar pasando?

    • Tal vez no está usando el plugin como se debe. Sin código ni pasos para reproducir el error no puedo ayudarle ni diagnosticar si el problema es el plugin o su impresora.
      Recuerde que estoy a sus órdenes en https://parzibyte.me/#contacto, puede solicitar una consultoría y enviarme capturas de pantalla o explicarme cómo reproducir el problema.

Entradas recientes

Plugin ESC POS – Actualización 3.4.0: imprimir HTML

El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…

23 horas hace

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

1 semana hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

1 semana hace

Imprimir PDF generado con HTML

Hoy vamos a ver programar la impresión de un PDF generado a partir de HTML…

1 semana hace

JavaScript: llenar select con arreglo

En este tutorial básico de JavaScript con HTML vamos a ver cómo llenar una lista…

2 semanas hace

Imprimir PDF a partir de URL

En este artículo se presenta una guía para imprimir un PDF a partir de una…

2 semanas hace

Esta web usa cookies.