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.

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

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

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

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:

Contratar una licencia para el plugin de impresora térmica V3

Conectores disponibles

Por el momento existe el conector de Java, Python 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.

Crear conector para plugin de impresora térmica

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:

Plugin gratuito para impresoras térmicas Bluetooth en 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.

Versión 1:

Código fuente de plugin para impresora térmica v1

Versión 2:

Código fuente de plugin para impresoras térmicas v2

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 disponible para trabajar en tu proyecto o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.
Si el post fue de tu agrado muestra tu apoyo compartiéndolo, suscribiéndote al blog, siguiéndome o realizando una donación.

Suscribir por correo

Ingresa tu correo y recibirás mis últimas entradas sobre programación, open source, bases de datos y todo lo relacionado con informática

Únete a otros 6,932 suscriptores

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/

17 Comentarios

Fabian · marzo 13, 2023 a las 12:29 pm

Hola, muchas gracias por el plugin, me parece excelente tu labor.
Quiero compartir lo que me ocurre al usarlo.
Lo ejecuté el jueves pasado (9/Mar) y lo pude ver en el listado de procesos en segundo plano, aunque aún no tenia la impresora instalada, en la pagina de prueba se mostraban las impresoras virtuales (Microsoft print to PDF, One Note 16, etc).
Hoy (13/Mar) lo vuelvo a ejecutar pero ya no se muestra en el listado de procesos y en la página ya no se ven las impresoras, aún y cuando ya instalé la impresora térmica y ya la compartí.
En el archivo de log está el siguiente mensaje: “listen tcp :8000: bind: Solo se permite un uso de cada dirección de socket (protocolo/dirección de red/puerto)”.
¿Algo me estará faltando o estaré haciendo algo erróneo?
Espero me puedas ayudar.

De antemano muchas gracias por la ayuda que me puedas brindar.

Saludos!!.

    parzibyte · marzo 13, 2023 a las 12:35 pm

    “Solo se permite un uso de cada dirección de socket”, es decir, ya hay otro programa ocupando ese puerto

    Fabian · marzo 15, 2023 a las 12:09 pm

    Hola, buen día.

    Ya pude solucionar la situación que se me presentó, en las pruebas que hice ajusté el puerto y ya no lo regresé al valor original (8000).
    Ya se cargan las impresoras que tengo instaladas incluyendo la térmica, sin embargo, al momento de mandar imprimir, en el log se muestra el siguiente error: “Al imprimir: Error en el servidor: json: cannot unmarshal array into Go value of type main.ImpresionConNombre” y no se imprime nada.

    ¿Será que me puedes orientar para poder encontrar algo que esté haciendo mal o me esté faltando?

    De nuevo, muchas gracias por tu apoyo.

    parzibyte · marzo 15, 2023 a las 12:32 pm

    Hola. Le recomiendo que lea detenidamente la documentación ya que los errores que ha tenido hasta el momento han sido porque no ha leído detalladamente. El error que se le presenta puede deberse a que está usando el conector de JavaScript de cierta versión pero con el plugin de otra versión.
    Recuerde que la documentación dice todo lo que necesita, pero si quiere puede solicitar ayuda personalizada en https://parzibyte.me/#contacto

JOSE DANIEL · febrero 7, 2023 a las 2:51 pm

Como puedo hacer un for para imprimir una lista de articulos

    parzibyte · febrero 7, 2023 a las 3:45 pm

    Hola. Sería cuestión de ajustar el código para que invoque al plugin como usted lo necesita. Recuerde que en este artículo se presenta el plugin y sus funciones, de lo demás se debe encargar el programador.
    Si necesita ayuda estoy para servirle en https://parzibyte.me/#contacto

Tonny · febrero 3, 2023 a las 3:32 pm

Hola!
Donde puedo ver los detalles de pago, correo, tiempos de entrega, precio del codigo, etc?
El tipo de ayuda que requiero es solamente detalles de compra

    parzibyte · febrero 3, 2023 a las 9:25 pm

    Hola. En este post que está comentando. Si quiere el precio por licencia puede leer en “Contratar una licencia”, ahí se indica el precio, detalles y métodos de pago. Si no encuentra algo (por ejemplo, el código fuente) es porque no está disponible.
    Saludos!

Kevin · noviembre 2, 2022 a las 10:29 pm

Buen dia, primeramente gracias por todos tu aportes, buento me sale el siguiente error : Error. El mensaje es: Error en el servidor: open \\DESKTOP-PORB6EF\: La ruta de acceso especificada no es válida. y no se a que se debe, me serviri mucho si me puedes orientar a solucionarlo. gracias.

    parzibyte · noviembre 3, 2022 a las 8:54 am

    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.

Jan · noviembre 1, 2022 a las 2:18 pm

Hola amigo! gracias por tu ayuda, me ha interesado mucho el tema de las impresoras térmicas. Una duda, se puede imprimir en dos columnas? por ejemplo por un lado el nombre del artículo y a la derecha en la misma línea el precio? alguna idea de cómo hacer?

    parzibyte · noviembre 1, 2022 a las 4:43 pm

    Sería cuestión de formatear el texto, verificar si el mismo sobrepasa la longitud para crear una nueva línea, etcétera.

Osiel Garza · octubre 30, 2022 a las 9:26 am

Buen día amigo, antes que nada tu plugin me ha ayudado mucho así que muchas gracias. Implemente una version anterior y estoy actualizando a la version 3 y tengo una pregunta, cual es la funcion para abrir el cajon? en la version anterior el metodo era abrirCajon(). De antemano te agradezco y espero que sigas con tu excelente trabajo

    parzibyte · octubre 30, 2022 a las 10:12 am

    Hola. Me parece que es “pulso”.
    Saludos cordiales.

Albert · octubre 21, 2022 a las 10:36 pm

Hola, por qué necesitas que el ancho de la imagen sea múltiplo del 8.

Donald · octubre 1, 2022 a las 12:33 am

Hola, Muchas Gracias por este plugin, me a ayudado mucho, estoy tratando de hacer la migración a la v3 pero al momento de ejecutar el plugin me esta generando error (0xc0000007b) me podrias ayudar, es desde W10

    parzibyte · octubre 1, 2022 a las 1:35 pm

    error 0xc00007b Algunos usuarios me informan que tienen el error 0xc00007b o que les pide una DLL de libiconv-2.dll o algo así. Ya he incluido esa DLL en el zip de pluginv3_windows_64.zip y ya no debería dar ningún tipo de problema. Asegúrate de distribuir el plugin junto con esa DLL

Deja un comentario

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto: