Plugin ESC POS v3

Conectar impresora térmica con Python – Imprimir tickets usando plugin v3

El día de hoy veremos cómo imprimir recibos, facturas o tickets en una impresora térmica usando Python a través de un plugin desarrollado por mí.

Con esto podrás imprimir tickets desde Python sin importar si usas la terminal, Flask, Tkinter, Django o cualquier otra cosa, pues mientras uses Python podrás imprimir en una impresora térmica.

Con el plugin presentado aquí podrás imprimir imágenes, códigos de barras, texto con acentos, cambiar fuentes, rotar texto y mucho más en la impresora térmica usando Python y comandos ESC POS.

Prueba el nuevo diseñador

En estos días he creado un nuevo diseñador web para impresoras térmicas. El diseñador te guiará en el proceso de instalar tu impresora, compartirla e instalar lo necesario para imprimir tus diseños. Pruébalo en:

https://parzibyte.me/apps/ticket-designer/#/first-steps

Una vez que tengas tus diseños vas a poder imprimirlos desde cualquier lenguaje de programación, incluyendo Python.

Creando lista de operaciones ESC POS

Lo primero que debes hacer es definir la lista de operaciones que se van a hacer en la impresora térmica. Estas operaciones serán convertidas a comandos ESC POS. La lista de operaciones es un simple arreglo de Python:

operaciones = [
    {
        "nombre": "Iniciar",
        "argumentos": [],
    },
    {
        "nombre": "EscribirTexto",
        "argumentos": ["Hola\nImpresora desde Python\n"],
    },
    {
        "nombre": "DescargarImagenDeInternetEImprimir",
        "argumentos": ["https://github.com/parzibyte.png", 380, 0, True],
    },
]

Cada elemento de la lista es un diccionario que tiene la propiedad nombre de tipo cadena, indicando el nombre de la operación, así como una propiedad llamada argumentos que es un arreglo de cualquier tipo que contiene los argumentos de dicha operación.

Por ejemplo, la función para imprimir texto se llama EscribirTexto y solo toma un argumento de tipo string que es el texto que será impreso en la impresora térmica:

{ "nombre": "EscribirTexto", "argumentos": ["Hola\nImpresora desde Python\n"], }

Vas a encontrar la lista de operaciones disponibles en la documentación oficial, así como su nombre, descripción, argumentos y ejemplos. Te recuerdo que, al ser una simple lista de Python, puedes crearla como tú prefieras y agregarle elementos usando append o definiendo la lista desde un inicio.

Cuando hayas creado la lista de operaciones puedes enviarla a la API HTTP local que convierte JSON a ESC POS. Primero arma la carga útil que contiene la lista de operaciones y el nombre de la impresora:

nombre_impresora = "Termica"
serial = ""
carga_util = {
    "operaciones": operaciones,
    "nombreImpresora": nombre_impresora,
    "serial": serial,
}

Finalmente hay que enviar ese diccionario codificado como JSON a la API en el endpoint /imprimir. Para hacer la petición HTTP podemos usar el paquete requests (pip install requests):

respuesta_http = requests.post("http://localhost:8000/imprimir", json=carga_util)
respuesta = respuesta_http.json()
if respuesta["ok"]:
    print("Impresión exitosa")
else:
    print("Error: " + respuesta["message"])

La API va a devolver un diccionario con la propiedad ok y message. Si la impresión ESC POS fue correcta, ok estará en True. En caso contrario, el mensaje de error estará en message.

El código completo queda como se ve a continuación:

import requests

"""
Esta lista de operaciones puede ser infinita.
Puedes definirla así, o invocar a append cuantas
veces sea necesario
Lista de operaciones disponibles: https://parzibyte.me/http-esc-pos-desktop-docs/es/
"""
operaciones = [
    {
        "nombre": "Iniciar",
        "argumentos": [],
    },
    {
        "nombre": "EscribirTexto",
        "argumentos": ["Hola\nImpresora desde Python\n"],
    },
    {
        "nombre": "DescargarImagenDeInternetEImprimir",
        "argumentos": ["https://github.com/parzibyte.png", 380, 0, True],
    },
]

nombre_impresora = "Termica"
serial = ""
carga_util = {
    "operaciones": operaciones,
    "nombreImpresora": nombre_impresora,
    "serial": serial,
}


respuesta_http = requests.post("http://localhost:8000/imprimir", json=carga_util)
respuesta = respuesta_http.json()
if respuesta["ok"]:
    print("Impresión exitosa")
else:
    print("Error: " + respuesta["message"])

Te lo repito: la lista de operaciones puede ser infinita y creada como tú prefieras; ya sea usando un ciclo, leyendo un archivo de texto, solicitando datos al usuario, etcétera.

Configurar impresora y descargar servidor HTTP a ESC POS

Para que el código funcione necesitas el servidor local de la API ESC POS ejecutándose y que tu impresora esté compartida. Por favor, sigue los pasos que aparecen en la página previamente enlazada, ya que ahí está la API unificada.

La documentación completa está en: https://parzibyte.me/http-esc-pos-desktop-docs/es/

Ticket impreso con Python en impresora térmica usando Plugin v3

Como puedes ver, estamos imprimiendo imágenes en una thermal printer usando Python, además de códigos QR, códigos de barra, texto con estilo y caracteres personalizados.

Lo que resta ahora es leer la documentación en la página del plugin para que conozcas todos los métodos y de todo lo que es capaz: https://parzibyte.me/http-esc-pos-desktop-docs/es/

Te dejo con más tutoriales de Python y más detalles sobre el plugin.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

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/

Entradas recientes

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

14 horas hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

6 días hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

3 semanas hace

Imprimir ñ en impresora térmica

En este post te enseñaré a imprimir la letra ñ en una impresora térmica. Voy…

4 semanas hace

Esta web usa cookies.