Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver algunas alternativas para imprimir el símbolo del euro en una POS printer.
Lo que recomiendo es que intentes imprimir el € directamente como imprimirías cualquier otro texto, ya que en algunos casos va a funcionar.
Si no funciona entonces sigue leyendo este post para aprender alternativas para imprimir el símbolo del euro en una impresora térmica de manera programada desde cualquier lenguaje de programación o usando las herramientas visuales que he programado para que cualquier usuario pueda beneficiarse de ellas.
Imprimir euro en impresora térmica
La primera opción para imprimir el € es definir un carácter personalizado (en este caso el euro) en una cuadrícula de 24×12, luego indicar el carácter de reemplazo y así cada vez que se imprima el carácter “sacrificado” se va a imprimir el euro.
Podemos usar ceros y unos para definir dicho carácter. En mi caso se ve así:
000000000000
000000000000
000000000000
000000011000
000001111111
000011111111
000111100001
001111000000
001110000000
111111111100
111111111100
001110000000
001100000000
111111111100
111111111100
001110000000
001110000000
000111000001
000111111111
000011111111
000000011000
000000000000
000000000000
000000000000
Ahora ya podemos imprimirlo enviando la lista de operaciones ESC POS a la impresora térmica de manera programada:
const cargaUtil = {
"serial": "",
"nombreImpresora": "",
"operaciones": [
{
"nombre": "Iniciar",
"argumentos": []
},
{
"nombre": "HabilitarCaracteresPersonalizados",
"argumentos": []
},
{
"nombre": "DefinirCaracterPersonalizado",
"argumentos": [
"_",
"000000000000\n000000000000\n000000000000\n000000011000\n000001111111\n000011111111\n000111100001\n001111000000\n001110000000\n111111111100\n111111111100\n001110000000\n001100000000\n111111111100\n111111111100\n001110000000\n001110000000\n000111000001\n000111111111\n000011111111\n000000011000\n000000000000\n000000000000\n000000000000"
]
},
{
"nombre": "EscribirTexto",
"argumentos": [
"Hola mundo. Imprimiendo el euro. Podemos decir: \nTotal: _123456\n"
]
},
{
"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);
}
Por ejemplo, en este caso estoy reemplazando al carácter del guión bajo. Cada vez que imprima texto que lo contiene, en lugar del _
se va a imprimir el €
.
Puedes probar la operación en el área de pruebas. Esta opción sirve si estás dispuesto a prescindir de otro símbolo.
Imprimir euro como HTML
También es posible imprimir el símbolo del euro como una cadena HTML. Sería como tomarle una captura de pantalla a una página web e imprimirla.
Las páginas web pueden contener y renderizar el euro (€) así que no importa si tu impresora lo soporta nativamente, pues mientras soporte la impresión de imágenes vas a poder imprimir el € en tu POS printer.
Veamos un ejemplo de código:
const cargaUtil = {
"serial": "",
"nombreImpresora": "",
"operaciones": [
{
"nombre": "Iniciar",
"argumentos": []
},
{
"nombre": "GenerarImagenAPartirDeHtmlEImprimir",
"argumentos": [
"<html><meta charset=\"UTF-8\"><p><strong>¡Hola</strong> €!</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);
}
La línea más importante es el código HTML que se va a imprimir en la impresora térmica: <html><meta charset=\"UTF-8\"><p><strong>¡Hola</strong> €!</p></html>
Puedes probar la operación en el área de pruebas o puedes usar el diseñador HTML para imprimir el euro en una impresora térmica.