Hoy te mostraré cómo imprimir recibos, tickets, facturas, etcétera en una impresora térmica (también conocidas como Thermal printers, Impresoras POS) usando el lenguaje de programación Python.
De este modo podrás imprimir en impresoras térmicas desde Python usando una clase y un conector desarrollados por mí. Verás que será realmente sencillo. Gracias a esto podrás imprimir y hacer operaciones como:
- Texto normal y texto con acentos (incluyendo las letras ñ de nuestro amado español)
- Imágenes a partir de una URL o imágenes locales presentes en la computadora del usuario. Así que puedes imprimir tu logotipo
- Códigos QR
- Códigos de barras
- Abrir el cajón de dinero
- Ajustar el tamaño de la fuente, alineación, saltos de línea
Básicamente podrás imprimir todo tipo de contenido en una impresora térmica desde Python.
Conector para impresoras térmicas
Desconozco si existe algo nativo para realizar la impresión; lo que yo traigo en este caso es un conector que se comunica con un plugin desarrollado por mí.
Así que primero debes descargarlo y ejecutarlo, además de configurar tu impresora. Todos los detalles los encuentras en este post.
Ahora lo que necesitas es el código de Python que se comunica con el plugin:
Recuerda que debes instalar requests con pip install requests
. Después de eso ya puedes imprimir en una impresora térmica desde Python, a continuación te mostraré un ejemplo.
Lo que importa ahora es que veas todos los métodos que ofrece el conector, pues simplemente tienes que crear una instancia de la clase, invocar a las funciones (para imprimir texto, imágenes, etcétera) para crear tu propio ticket y finalmente invocar a imprimirEn
.
También existe el método obtenerImpresoras
que devuelve una lista de impresoras, esto en caso de que quieras proveer al usuario con una lista de las mismas.
Ejemplo: impresión de ticket
Como puedes ver en la imagen, tenemos una demostración de lo que puede hacer este plugin junto con el conector para comunicar Python directamente con una impresora térmica.
El código que hace eso posible es el siguiente:
En el código puedes notar que estamos usando Python puro. No necesitamos ninguna otra librería, solo el paquete de requests
. En este caso hay varias líneas de código porque estoy demostrando la mayoría de cosas que el plugin puede hacer.
Así que de este modo podemos usar Python para imprimir en impresoras térmicas, agregando la posibilidad de imprimir texto con acentos e imágenes.
Poniendo todo junto
Con el ejemplo y el conector tienes todo lo necesario. Recuerda descargar el plugin, configurar tu impresora térmica, ejecutar el plugin y luego usar el código de Python.
Te dejo el código completo en Github. Si quieres ver una lista detallada de todos los métodos que existen puedes leer la documentación del conector.
Por aquí te dejo más artículos sobre Python.
12 Comentarios
Alberto · octubre 7, 2022 a las 11:34 am
Que tal, mi nombre es Alberto López, voy empezando a utilizar python y encontré tu video y código, y también me envía el siguiente mensaje:
Error. El mensaje es: Error en el servidor: error del servidor. El servidor dijo: Ya no se permiten las peticiones sin clave API. Contrata un plan en https://parzibyte.me/plugin-impresora-termica/planes/ o utiliza la versión 1, ya sea gratis o completa: https://parzibyte.me/plugin-impresora-termica-v1/
Según yo uso la versión 1, quise preguntar en la opción de contacto, e indica que todo tiene costo en dólares?, cuando publicas puede ser gratuito
parzibyte · octubre 7, 2022 a las 11:54 am
Hola. Le recomiendo que lea con más atención. El post que está comentando actualmente usa el plugin versión 2.
La versión 1 está en: https://parzibyte.me/plugin-impresora-termica-v1 y claro que puede ser usada gratuitamente (solo que no funciona para Python), pero le repito, por favor lea con más atención antes de comentar
También, gracias a su comentario, he puesto un aviso en el post. Puede leerlo para ver sobre la versión 3 y final.
Gracias y saludos!
Carolina · septiembre 28, 2022 a las 2:44 pm
Hola, realicé la configuración siguiendo los pasos de la versión 1 para la impresión con Python y en principio todo iba bien, pero desde ayer me salta este error y no consigo imprimir nada:
“error de servidor. El mensaje es: error del servidor. El servidor dijo: Ya no se permiten las peticiones sin clave API. Contrata un plan en https://parzibyte.me/plugin-impresora-termica/planes/ o utiliza la versión 1, ya sea gratis o completa: https://parzibyte.me/plugin-impresora-termica-v1/”
Realicé la configuración con la versión gratuita y no he modificado nada. ¿Cómo puedo arreglarlo?
Saludos!
parzibyte · septiembre 28, 2022 a las 3:49 pm
La versión 2 ya no es soportada porque ya existe la 3: https://parzibyte.me/blog/2022/09/30/plugin-impresoras-termicas-version-3/
Archer · agosto 25, 2022 a las 12:26 pm
Hola, estoy tratando de imprimir un tiket desde una base de datos pero cuando mando la ejecucion y todo solo me imprime un mensaje que dice “none” sabes a que se deba?
parzibyte · agosto 25, 2022 a las 8:31 pm
Hola. Gracias por sus comentarios. Si tiene alguna consulta, solicitud de creación de un programa o solicitud de cambio de software estoy para servirle en https://parzibyte.me/#contacto
Saludos!
Archer · agosto 25, 2022 a las 9:46 am
Hola, me gustaría saber como quitar el pie de pagina que sale en el tiket, al colocar el link que aparece para quitarlo me manda a una pagina caída 🙁
parzibyte · agosto 25, 2022 a las 8:30 pm
Hola. Aquí los detalles: https://parzibyte.me/blog/2021/02/09/planes-plugin-impresora-termica-v2/
fernando · febrero 16, 2022 a las 9:09 am
Hola.
Al imprimir sale un texto en la cabecera: “plugin para impresoras térmicas………..”, como quitar este texto?
Cuando se reinicia el computador se debe ejecutar nuevamente el ejecutable conector_64_bits (1).exe para que funcione la impresión. como solucionar esto?
parzibyte · febrero 16, 2022 a las 12:38 pm
Para quitar el texto: https://parzibyte.me/blog/2021/02/09/planes-plugin-impresora-termica-v2/
Para iniciarlo: https://parzibyte.me/blog/2019/10/14/ejecutar-programa-inicio-windows/
Angel · abril 18, 2021 a las 8:04 pm
Bro, excelente aporte, quisiera saber como lo hiciste el plugin lo conectas mediante sockets? esta escrito en otro lenguaje? la verdead me interesa mucho como lo hiciste si pudieras compartir conmigo simplemente por donde empesaste o como lees las impresoras seria increible bro
Dampir · marzo 7, 2021 a las 6:45 am
Simplemente Excelente. Saludos.