Resumen: en este post te mostraré cómo imprimir códigos QR legibles en una impresora térmica (también llamada ticketera, impresora de tickets, pos printer, etcétera) usando un plugin gratis.
Si has seguido mis posts sabrás que hace tiempo desarrollé un plugin y que poco a poco le he agregado características nuevas, hasta llegar al día de hoy en donde imprimimos códigos QR en una thermal printer desde JavaScript, Python, Java y muchos otros lenguajes.
Nota: puedes ver la versión en inglés aquí.
Imprimiendo códigos QR
El proceso es sencillo, solo debes enviar una lista de operaciones que serán traducidas a comandos ESC POS para la impresora térmica. Comencemos viendo un ejemplo muy simple de 2 operaciones: iniciar la impresora e imprimir un código QR.
const cargaUtil = {
"serial": "",
"nombreImpresora": "Termica",
"operaciones": [
{
"nombre": "Iniciar",
"argumentos": []
},
{
"nombre": "ImprimirCodigoQr",
"argumentos": [
"https://parzibyte.me/blog/",
380,
1,
0
]
}
]
};
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);
}
Estamos usando la operación Iniciar
e ImprimirCodigoQr
. Para imprimir el código QR debemos especificar el contenido como cadena, el máximo ancho, nivel de recuperación y algoritmo que se usará para convertir la imagen en bytes ESC POS así como lo indica la documentación.
Si quisieras imprimir otro QR, simplemente agrega la misma operación 2 veces al arreglo, y puedes hacerlo en el orden que tú prefieras, ya que el ticket se imprimirá siguiendo el orden de las operaciones.
En este ejemplo estamos usando JavaScript pero la API HTTP te permite usar cualquier lenguaje de programación.
Nota: de hecho puedes leer ambos códigos QR desde la imagen de arriba para que te des una idea de la calidad de impresión. Además, en este caso no los he impreso al máximo ancho.
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/
Pruébalo tú mismo
Si quieres generar e imprimir códigos QR por ti mismo sin programar navega a este ejemplo, solo no olvides ejecutar el plugin en segundo plano. Probar en el área de pruebas.
Aprovecho para recomendarte que igualmente he programado un plugin para imprimir en impresoras térmicas desde Android gratis.
Hola, ¿podrías decirme como hacer para imprimir un QR al lado del otro?, necesito imprimir dos QR juntos y solo logro imprimir uno
Hola. Gracias por sus comentarios. Si tiene alguna consulta o duda, solicitud de creación de un programa o solicitud de cambio de software estoy para servirle en https://parzibyte.me/#contacto
Saludos!
Estimado es factible obtener la version sin la impresion de la cabezera y el footer.
adicionalmente queria consultarte si cuentas con una version que permita imprimir una logo en la cabezera.
Saludos
Hola, le invito a leer las preguntas frecuentes: https://parzibyte.github.io/plugin-ticket-js#faq
Sobre la imagen, todavía no es posible, pero en un futuro lo será, puede contactarme para más información
Saludos