El día de hoy vamos a hacer una cosa que varios me han pedido y que siempre he querido hacer: imprimir en una impresora térmica Bluetooth desde Android usando JavaScript.

Básicamente vamos a enviar un ticket a una thermal printer con Bluetooth desde el navegador web sin cuadros de diálogo ni cosas extrañas: tan solo usando un plugin gratuito desarrollado por mí y JavaScript puro.

Debido a que esto es hecho desde el navegador con JS luego puedes usarlo para imprimir en una impresora térmica Bluetooth desde Vue, React, Angular, TypeScript, etcétera: cualquier cosa que compile, use o traspile a JavaScript.

Demostración rápida

Si quieres probar antes de ver el código entonces sigue los siguientes pasos. Primero descarga, instala y dale los permisos al siguiente plugin:

Plugin gratuito para impresoras térmicas Bluetooth en Android

Asegúrate de tener encendido el Bluetooth y de que le has dado todos los permisos al plugin, además de haber emparejado tu impresora térmica previamente.

Visita la siguiente página desde el dispositivo Android: https://parzibyte.github.io/imprimir-impresora-termica-bluetooth-javascript-android/

Coloca la MAC de tu impresora (por ejemplo FF:FF:FF:FF:FF:FF) y haz clic en Imprimir:

Página de demostración para imprimir en impresora térmica Bluetooth desde JavaScript

Página de demostración para imprimir en impresora térmica Bluetooth desde JavaScript

Debería imprimirse un ticket como el siguiente:

Imprimir en impresora térmica conectada por Bluetooth en Android desde JavaScript

Imprimir en impresora térmica conectada por Bluetooth en Android desde JavaScript

En caso de que todo haya funcionado ya puedes seguir leyendo el post para ver cómo imprimir en una impresora térmica desde Android usando JavaScript.

Hola Impresora térmica Bluetooth desde JavaScript

Antes que nada descarga y ejecuta el plugin para Android:

Plugin gratuito para impresoras térmicas Bluetooth en Android

Ahora debemos importar el conector, mismo que puedes descargar de: https://github.com/parzibyte/imprimir-impresora-termica-bluetooth-javascript-android/blob/main/ConectorEscposAndroid.js

Desde HTML vamos a importarlo:

En este caso main.js es el código que va a imprimir el ticket al presionar un botón. Cuando eso suceda se va a ejecutar el siguiente código:

Primero creamos una nueva instancia de ConectorEscposAndroid pasándole la licencia y la URL del plugin. La licencia es un parámetro opcional pero lo estoy mostrando aquí para futuros ejemplos.

Luego podemos invocar a todos los métodos para armar nuestro ticket, ya sea para alinear, enfatizar, imprimir imágenes, etcétera (puedes ver la lista completa en el conector o en la documentación del plugin).

Una cosa es armar nuestro conector y llenarlo de operaciones y otra muy distinta es enviar esas operaciones invocando a imprimirEn, pasando la dirección MAC de la impresora.

Al invocar a imprimirEn se va a imprimir lo que hayamos definido en el conector, siempre y cuando el plugin se esté ejecutando en segundo plano. En este caso:

Imprimir en impresora térmica conectada por Bluetooth en Android desde JavaScript

Imprimir en impresora térmica conectada por Bluetooth en Android desde JavaScript

 

¿Cómo funciona?

Al momento de escribir este post no hay mucho soporte para Bluetooth desde JavaScript, y el poco que existe es con BLE además de que es un lío pelear con las características y servicios.

Por ello es que decidí crear un plugin gratuito que permite ser invocado desde JavaScript (y otros lenguajes) para imprimir en una impresora térmica Bluetooth.

De este modo no necesitamos escapar del sandbox del navegador, solo necesitamos el plugin en ejecución.

Nota: recuerda que para invocar a localhost debes estar en un sitio con https.

Próximos pasos

Si quieres puedes ver el código fuente completo de la demostración: https://github.com/parzibyte/imprimir-impresora-termica-bluetooth-javascript-android

A partir del ejemplo de la demostración puedes imprimir desde cualquier lugar y en cualquier momento. Tal vez te interese ver la presentación del plugin o su documentación.

Si tú no eres de Android y usas impresoras USB tal vez te interese mi otro plugin.


Estoy disponible para trabajar en tu proyecto o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.
Si el post fue de tu agrado muestra tu apoyo compartiéndolo, suscribiéndote al blog, siguiéndome o realizando una donación.

Suscribir por correo

Ingresa tu correo y recibirás mis últimas entradas sobre programación, open source, bases de datos y todo lo relacionado con informática

Únete a otros 6,046 suscriptores

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/

0 Comentarios

Deja un comentario

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto: