Python ESCPOS: Impresión de Tickets con Python ESCPOS

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:

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

Python
# 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.

Python
# 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:

Python
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