Python ESCPOS: Impresión de Tickets con Python ESCPOS
Introducción
ESC/POS es un protocolo de comunicación utilizado para controlar impresoras térmicas. Se trata de un protocolo estándar que es compatible con una gran variedad de impresoras térmicas, por lo que es una buena opción para desarrollar aplicaciones que requieran imprimir tickets o recibos.
Python ESCPOS es una biblioteca de Python que permite utilizar el protocolo ESC/POS para controlar impresoras térmicas. Esta biblioteca es de código abierto y está disponible en el repositorio de PyPI.
En este tutorial aprenderemos a utilizar Python ESCPOS para imprimir tickets.
Requisitos
Para seguir este tutorial, necesitarás:
- Una impresora térmica compatible con el protocolo ESC/POS.
- Python 3.6 o superior.
- La biblioteca Python ESCPOS.
Instalación de la biblioteca Python ESCPOS
Para instalar la biblioteca Python ESCPOS, abre una terminal y ejecuta el siguiente comando:
pip install python-escpos
Conexión a la impresora
Para conectarte a la impresora, primero debes conocer el nombre de la impresora. Puedes encontrar esta información en el administrador de dispositivos de Windows o en la configuración de la impresora.
Una vez que conozcas el nombre de la impresora, puedes conectarte a ella usando el siguiente código:
import escpos
# Conectarse a la impresora
printer = escpos.printer.SerialPrinter(port='/dev/ttyUSB0', baudrate=9600)
En este ejemplo, estamos conectando a una impresora térmica conectada a un puerto USB. El nombre del puerto USB puede variar según el sistema operativo que estés utilizando.
Impresión de texto
Para imprimir texto, puedes usar el método write()
de la impresora. Este método acepta una cadena de texto como argumento.
# Imprimir texto
printer.write('Hola, mundo!')
Este código imprimirá el texto «Hola, mundo!» en la impresora.
Impresión de imágenes
Para imprimir imágenes, puedes usar el método image()
de la impresora. Este método acepta un objeto Image
como argumento.
# Importar la biblioteca de imágenes
import PIL.Image
# Cargar la imagen
image = PIL.Image.open('logo.png')
# Imprimir la imagen
printer.image(image)
Este código imprimirá la imagen logo.png
en la impresora.
Ejemplo completo
El siguiente código muestra un ejemplo completo de cómo imprimir un ticket con Python ESCPOS:
import escpos
import PIL.Image
# Conectarse a la impresora
printer = escpos.printer.SerialPrinter(port='/dev/ttyUSB0', baudrate=9600)
# Imprimir el encabezado del ticket
printer.write('**Tienda de ejemplo**')
printer.write('Fecha: 2023-07-20')
printer.write('Hora: 12:00:00')
# Imprimir los artículos del ticket
printer.write('**Artículo 1**')
printer.write('Cantidad: 1')
printer.write('Precio: 10.00')
printer.write('Total: 10.00')
printer.write('**Artículo 2**')
printer.write('Cantidad: 2')
printer.write('Precio: 5.00')
printer.write('Total: 10.00')
# Imprimir el total del ticket
printer.write('**Total: 20.00**')
# Imprimir la imagen del logo
image = PIL.Image.open('logo.png')
printer.image(image)
# Cortar el ticket
printer.cut()
Este código imprimirá un ticket con el siguiente contenido:
**Tienda de ejemplo**
Fecha: 2023-07-20
Hora: 12:00:00
**Artículo 1**
Cantidad: 1
Precio: 10.00
Total: 10.00
**Artículo 2**
Cantidad: 2
Precio: 5.00
Total: 10.00
**Total: 20.00**
Conclusión
Python ESCPOS es