Plugin ESC POS v3

Imprimir códigos de barras en impresora térmica

Hoy vamos a ver cómo generar e imprimir códigos de barras en una impresora térmica desde Windows, Linux o Raspberry Pi (técnicamente desde Windows, derivados de Debian y Raspbian).

Podremos imprimir códigos de barras Codabar, Code 128, Code 39, Code 93, Ean, Ean8, PDF417, Two of Five ITF, UPC A y UPC E.

También vamos a poder personalizar las medidas, es decir, el ancho y el alto. Podremos hacer esto desde cualquier lenguaje de programación incluyendo JavaScript (desde el navegador web), Java y Python.

Funcionamiento

Vamos a usar un plugin gratuito que he programado y que funciona para todas las plataformas mencionadas anteriormente.

El ejemplo que te voy a mostrar está programado con JavaScript para que lo puedas probar directamente en tu navegador pero más adelante puedes usar otros lenguajes siguiendo la documentación de la API.

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/

Primera prueba

Navega a este enlace para imprimir un código de barras.

Debería aparecer un código de barras que puede verse así:

Código de barras pequeño impreso en Xprinter (impresora térmica)

Más adelante podrás crear tus propios conectores para comunicarte con el plugin. También aprenderás a cambiar el ancho y alto del código de barras.

Por ejemplo, yo he logrado imprimir uno de hasta 400×80 y se ve genial:

Código de barras EAN 13 con impresora térmica

Te repito que el tamaño depende de las capacidades de tu impresora. En mi Xprinter 58 no soporta códigos más largos pero creo que ya anda fallando algo de su conexión, y en cambio en la GOOJPRT PT-210 funciona perfectamente.

Me imagino que con las Epson no tendrás ningún problema, pero como siempre: es cuestión de probar y experimentar.

Código para imprimir barcode en thermal printer

Ya te he mostrado los resultados antes del código. La implementación es realmente sencilla, ya que solo es cuestión de consumir una API HTTP local que envía operaciones ESC POS a las impresoras térmicas, y en este caso también se puede enviar una operación para imprimir un código de barras.

Por ejemplo, veamos el código de JavaScript para un código en formato Code 128:

const cargaUtil = {
  "serial": "",
  "nombreImpresora": "",
  "operaciones": [
    {
      "nombre": "Iniciar",
      "argumentos": []
    },
    {
      "nombre": "ImprimirCodigoDeBarrasCode128",
      "argumentos": [
        "D387266D",
        80,
        380,
        0
      ]
    },
    {
      "nombre": "Iniciar",
      "argumentos": []
    },
    {
      "nombre": "Feed",
      "argumentos": [
        2
      ]
    }
  ]
};
const respuestaHttp = await fetch("http://localhost:8000/imprimir", {
    method: "POST",
    body: JSON.stringify(cargaUtil)
});
const respuesta = await respuestaHttp.json();
if (respuesta.ok) {
    console.log("Impreso correctamente")
} else {
    console.error("Petición ok pero error en el plugin: " + respuesta.message);
}

El arreglo de operaciones contiene varios comandos ESC POS, entre ellos el de ImprimirCodigoDeBarrasCode128 que permite imprimir el código de barras.

Puedes imprimir ese código desde cualquier lenguaje de programación, ya que la API está totalmente documentada.

Por si te lo preguntas, los códigos de barras son legibles. Incluso el más pequeño lo es:

Leyendo código de barras impreso en impresora térmica

Conclusión

Igualmente tengo un plugin para impresoras Bluetooth, y se pueden imprimir códigos de barras, QR y todo lo que se puede hacer con este plugin.

También tengo otro post explicando la impresión de códigos QR en impresoras térmicas:

Por aquí te dejo más posts con relación al 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

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

1 semana hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 semanas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 semanas hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

2 semanas hace

Esta web usa cookies.