Impresoras

Imprimir ñ en impresora térmica

En este post te enseñaré a imprimir la letra ñ en una impresora térmica. Voy a mostrarte 3 alternativas para imprimir la ñ en una POS printer usando comandos ESC POS. La primera alternativa será definir un carácter personalizado en una cuadrícula de 12×24, luego veremos cómo cambiar la página de códigos de la impresora térmica para imprimir la ñ y finalmente vamos a ver cómo imprimir HTML como imagen.

Así que al final vas a poder imprimir la ñ en una impresora térmica usando la alternativa que prefieras.

Nota: obviamente estas son alternativas en caso de que tu impresora no soporte la impresión de la letra eñe sin modificaciones adicionales. Por ejemplo, en mi impresora PT-210 puedo imprimir la ñ así como cualquier otro texto. Este post te va a enseñar a imprimir la Ñ en tu impresora térmica si la misma no es soportada o si en lugar de la letra se imprime un carácter extraño.

Definir la ñ como un carácter personalizado

Letra ñ en impresora térmica

Puedes dibujar la Ñ en una cuadrícula de 12×24 con ceros y unos. Esto permite imprimirla como si fuera texto nativo, además de respetar el enfatizado y el cambio de tamaño de fuente. La desventaja es que debes sacrificar otro carácter.

La letra ñ dibujada con ceros y unos se ve así:

000000000000
000000000000
000000000000
000111000100
001111111110
001101111100
000000010000
000000000000
011001111100
011111111110
011111001110
011100001110
011100001110
011000000110
011000000110
011000000110
011000000110
011000000110
011000000110
011000000110
011000000110
000000000000
000000000000
000000000000

Después podemos indicarle a la impresora térmica su definición y el carácter que va a reemplazar:

{
      "nombre": "DefinirCaracterPersonalizado",
      "argumentos": [
        "_",
        "000000000000\n000000000000\n000000000000\n000111000100\n001111111110\n001101111100\n000000010000\n000000000000\n011001111100\n011111111110\n011111001110\n011100001110\n011100001110\n011000000110\n011000000110\n011000000110\n011000000110\n011000000110\n011000000110\n011000000110\n011000000110\n000000000000\n000000000000\n000000000000"
      ]
    },

En este ejemplo se va a reemplazar el guion bajo. Ahora, cada vez que se imprima algún texto con el guion bajo así:

    {
      "nombre": "EscribirTexto",
      "argumentos": [
        "Hola mundo. Imprimiendo letras que no existen en mi impresora, como la _"
      ]
    },

El texto resultante será Hola mundo. Imprimiendo letras que no existen en mi impresora, como la ñ. Puedes probar esta operación en el playground.

Nota: no todas las impresoras soportan la definición de un carácter personalizado. Mi Xprinter 58 sí lo hace, pero mi PT-210 no.

Cambiar página de códigos de caracteres

La siguiente opción para imprimir la ñ es cambiar la charcode page. Con mi Xprinter 58 tengo la opción de deshabilitar el modo de caracteres chinos y luego imprimir texto cambiando la página de código de caracteres.

const cargaUtil = {
  "serial": "",
  "nombreImpresora": "",
  "operaciones": [
    {
      "nombre": "DeshabilitarElModoDeCaracteresChinos",
      "argumentos": []
    },
    {
      "nombre": "TextoSegunPaginaDeCodigos",
      "argumentos": [
        2,
        "cp850",
        "Hola señor"
      ]
    },
    {
      "nombre": "Feed",
      "argumentos": [
        4
      ]
    }
  ]
};

Fíjate que al usar TextoSegunPaginaDeCodigos con el número de página 2 y el charcode page cp850 puedo imprimir la ñ en mi POS printer, y no solo la ñ, también letras con tildes y más caracteres propios del español.

Como ya lo dije previamente: no todas las impresoras lo soportan, y el código de las páginas de caracteres varía entre modelos. Lo que recomiendo es probar con todas las combinaciones posibles.

Puedes probar este ejemplo en el playground.

Imprimir ñ usando HTML

Las impresoras térmicas pueden imprimir imágenes, así que podemos convertir una cadena de código HTML a imagen y después imprimir dicha imagen. Podemos escribir la ñ y cualquier otro texto dentro de esa cadena de HTML pues al final será como tomarle una captura de pantalla a una página web.

De este modo también podemos imprimir la letra Ñ usando comandos ESC POS.

const cargaUtil = {
  "serial": "",
  "nombreImpresora": "",
  "operaciones": [
    {
      "nombre": "Iniciar",
      "argumentos": []
    },
    {
      "nombre": "GenerarImagenAPartirDeHtmlEImprimir",
      "argumentos": [
        "<html><meta charset=\"UTF-8\"><p><strong>¡Hola</strong> mundo! Soy la letra ñ</p></html>",
        380,
        380,
        0,
        false
      ]
    }
  ]
};
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);
}

Revisa el ejemplo en el área de pruebas.

Conclusión

Existen varias formas de imprimir la letra ñ. Todo depende de tu impresora y tus necesidades. La opción que más recomiendo es la que involucra HTML.

Te dejo con un editor visual para impresora térmica y con la documentación oficial de las impresoras térmicas.

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

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

5 días hace

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…

6 días 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…

2 semanas 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…

4 semanas hace

Esta web usa cookies.