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.
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.
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.
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.
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.
En este post te quiero compartir mi experiencia tramitando un acta de nacimiento de México…
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
Esta web usa cookies.