Plugin ESC POS v3

Imprimir caracteres personalizados en impresora térmica

En este post te voy a mostrar cómo imprimir caracteres especiales en un ticket impreso con una impresora térmica.

Con lo mostrado aquí vas a poder imprimir letras ñ, acentos de español, símbolo de euro y muchos otros signos que no son posibles de imprimir normalmente.

Lo que ves en la siguiente foto no son imágenes; son caracteres definidos por mí que se pueden imprimir como si fueran texto y que van a reemplazar a una letra:

Caracteres personalizados en impresora térmica – Reemplazar letra por símbolo

Nota: esto es la alternativa final en caso de que tu impresora no soporte los acentos o tildes.

Imprimiendo acentos y cosas de español

Las impresoras térmicas varían mucho en cuanto a los acentos y páginas de caracteres.

Algunas soportan la impresión de acentos sin configuraciones extras, otras necesitan deshabilitar el modo chino y convertir los caracteres y finalmente existen las que no soportan nada de eso.

Como sea, siempre recomiendo hacer lo siguiente en orden:

  1. Probar si puedes imprimir el carácter deseado normalmente (en la PT-210 funciona al menos en modo Bluetooth) invocando a EscribirTexto
  2. Deshabilitar el modo de caracteres chinos e imprimir convirtiendo el texto según una página de códigos. Recomiendo probar con todas las páginas de caracteres hasta agotarlas, y combinar todo. Esto que menciono está implementado en la función TextoSegunPaginaDeCodigos de este plugin: https://parzibyte.me/blog/2022/09/30/plugin-impresoras-termicas-version-3/)
  3. Definir un carácter personalizado como lo veremos a continuación.

Si nada funciona, recuerda que puedes enviarme un mensaje en https://parzibyte.me/#contacto para solicitar ayuda.

Definir carácter personalizado

Vamos a ver cómo definir una letra que tu impresora térmica no soporte, por ejemplo, el euro, el símbolo del centavo, el símbolo de tu moneda, la letra ñ, acentos o cualquier cosa que quepa en una cuadrícula de 12×24 en modo “pixel art”.

Nota: en este caso usaré un ejemplo con JavaScript pero podrás hacerlo con cualquier lenguaje de programación

Primero definimos el carácter como una cadena separada por saltos de línea. Por ejemplo:

See the gist on github.

Fíjate que la cadena no tiene tabulaciones ni espacios extra.

Lo que sigue es invocar a HabilitarCaracteresPersonalizados y luego a DefinirCaracterPersonalizado indicando el carácter que vamos a reemplazar y la matriz que lo remplaza.

Cuando hayamos hecho eso, el carácter de reemplazo aparecerá en lugar del carácter reemplazado al invocar a EscribirTexto. Veamos un ejemplo:

See the gist on github.

Fíjate en la línea 22 y 23. Ahí en lugar del símbolo de pesos va a aparecer mi carácter personalizado.

Ahora en la línea 25 estoy imprimiendo el símbolo $ pero en realidad cuando se imprima el ticket aparecerá lo siguiente (revisa arriba de Gracias por su compra, junto al código QR):

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

Nota: la salida que ves está hecha con Python, pero así aprovecho para demostrar que se puede imprimir el carácter personalizado y que no importa desde cuál lenguaje de programación lo hagas.

Probarlo en línea

He creado un pequeño y simple playground en donde tú puedes definir el carácter para que obtengas la cadena de ceros y unos y luego puedas definir y enviar ese char personalizado.

Imprimir carácter personalizado en impresora térmica usando plugin gratuito

Puedes probarlo en el siguiente enlace: https://parzibyte.github.io/ejemplos-javascript-plugin-v3/caracter_personalizado.html y ver el código fuente en: https://github.com/parzibyte/ejemplos-javascript-plugin-v3/blob/main/caracter_personalizado.html

Recuerda que antes de probarlo ya debiste haber configurado tu impresora y estar ejecutando el plugin. La guía está en:

Por cierto, por si te sirve, el símbolo del euro lo he definido así:

See the gist on github.

Aquí tienes un vídeo:

Sobre la compatibilidad

Recuerda que todas las impresoras tienen diferentes capacidades y algunas soportan cosas que otras no. Por ejemplo, mi Xprinter 58 permite definir e imprimir caracteres personalizados pero la PT-210 no.

Por otro lado la PT-210 permite imprimir acentos y todo tipo de caracteres sin convertirlos, pero no permite definir e imprimir caracteres personalizados.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

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 PDF con Bot de Telegram

La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…

3 días hace

Enviar mensaje con bot de Telegram usando JavaScript (lado del cliente)

Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…

3 días hace

PHP: incrustar imagen en base64

El día de hoy te enseñaré algo muy sencillo pero útil al programar con PHP:…

3 días hace

Plugin ESC POS – Actualización 3.4.0: imprimir HTML

El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…

4 días hace

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

2 semanas hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

2 semanas hace

Esta web usa cookies.