Blog de conocimiento gratuito: linux, programación, open source, bases de datos, android, frameworks, web e informática en general.
En este post te mostraré un plugin gratuito que te va a permitir imprimir en impresoras térmicas desde Android.
La aplicación (APK) que te enseñaré sirve como puente entre el programador y una impresora térmica conectada por Bluetooth para enviar comandos ESC POS, además de que es una app gratuita.
Con lo presentado aquí vas a poder imprimir texto, códigos QR, códigos de barras, imágenes locales, de internet o en base 64 además de otras opciones como avanzar el papel, invertir el fondo, rotar el texto, cambiar la fuente, alinear y todo lo que sea posible con comandos ESC POS de las Thermal printers.
Además, vas a poder consumir el plugin desde cualquier lenguaje de programación, pues la app que te enseño hace todo el trabajo por ti, tú solo le indicas lo que quieres imprimir desde Android de manera inalámbrica.
El plugin es, al final del día, una aplicación que deberás instalar en los teléfonos y/o tabletas en donde vayas a imprimir en impresoras térmicas. Además, el mismo debe ejecutarse en segundo plano siempre.
La app va a iniciar un servidor HTTP y va a escuchar peticiones. Cuando reciba una petición (creada a través de un conector) va a interpretarla y después va a “reenviarla” a la impresora térmica a través de Bluetooth.
Entonces tú puedes imprimir desde cualquier lugar que hable HTTP, por ejemplo, JavaScript desde el navegador web y también desde otras apps programadas con Java, Kotlin o Dart (usando Flutter).
El esquema queda así:
Cualquier cosa que hable HTTP -> Plugin -> Impresora térmica bluetooth.
Incluso podrías imprimir a través de la red usando cualquier otro lenguaje de programación. Las posibilidades son infinitas, pues mientras sepas cómo hablarle a la API expuesta por el plugin vas a poder imprimir desde cualquier lugar.
Nota importante: el plugin siempre debe estar en ejecución. Asegúrate de darle todos los permisos y deshabilitar el ahorro de energía o cosas similares (en mi Xiaomi debí elegir Sin restricciones en Ahorro de batería).
Es verdad que el plugin es totalmente gratuito y lo puedes usar sin límite. Para descargarlo ve a la siguiente página en el apartado de releases y descarga el APK: https://github.com/parzibyte/plugin-impresora-termica-bt-android/releases/latest
Desde ahora te digo que la app no es maliciosa y que los permisos que necesita están justificados para el debido funcionamiento del plugin, pero si no tienes confianza simplemente no la instales y no pasa nada.
El plugin para Android e impresoras térmicas BT debería funcionar a partir de la versión 4.4 de Android y superiores pero el dispositivo más antiguo que pude conseguir fue uno con Android 6.0.1 y el más reciente con Android 12.
Aquí hay un vídeo explicativo: https://www.youtube.com/watch?v=NgVwmZrFNZo
Una vez que lo hayas instalado y dado permisos abre el plugin, debería mostrarte que ha iniciado el servidor correctamente y que tiene todos los permisos. Si no le das permisos entonces no va a iniciar el servidor y no podrás usarlo.
En caso de que todo vaya bien se verá algo así:
Ahora vamos a realizar una prueba. Asegúrate de que para este paso ya hayas emparejado tu dispositivo con la impresora y que tengas activado el Bluetooth.
Haz clic en Ver impresoras disponibles y espera a que la lista cargue. Localiza tu impresora y haz clic en Probar (yo he borrado la MAC de la captura pero mi impresora es la MTP-II):
Debería imprimirse un ticket como el siguiente:
Y si has llegado hasta ese paso, felicidades, ahora ya puedes usar el plugin para crear tus propios tickets e imprimir lo que tú quieras desde cualquier lugar. Lo que ves arriba es solo una prueba.
Ahora ya puedes usar el plugin (recuerda que debe ejecutarse en segundo plano siempre) desde cualquier lenguaje.
Actualmente existe el conector para JavaScript (así puedes imprimir desde el navegador):
https://parzibyte.me/blog/2022/11/01/imprimir-ticket-impresora-termica-bluetooth-javascript-android/
Y el de Android con Java:
https://parzibyte.me/blog/2022/11/01/imprimir-impresora-termica-android-java/
Con la documentación del plugin puedes crear tu propio conector para consumirlo o contratarme para escribir un conector para tu plataforma favorita: https://parzibyte.me/#contacto
El plugin es totalmente gratuito y no hay límite de nada: ni en impresión de tickets, longitud de datos ni lenguaje de programación desde donde lo consumas, pero siempre aparecerá un pie de página con mis créditos.
Si quieres remover el pie de página por favor lee el siguiente post en donde documento los detalles para obtener una licencia de uso:
https://parzibyte.me/blog/2022/11/02/obtener-licencia-plugin-impresoras-termicas-bluetooth-android/
La documentación del plugin la encuentras en el siguiente enlace, ahí se profundiza más en los detalles:
https://parzibyte.me/blog/2022/11/01/documentacion-plugin-impresoras-termicas-bluetooth-android/
Muchas gracias por compartir el plugin.
Lo he probado con una DATECS DPP350C (ESC/POS) y me sale el mensaje “Impreso correctamente” però no imprime nada.
He instalado esta impresora en windows y bluettoth (con los drivers) y si que me imprime.
¿Aguna sugerencia?
Hola, buen día. Tal vez el plugin no es compatible con su impresora. Recomiendo revisar de nuevo activando el Bluetooth, otorgando todos los permisos, revisando la impresora y comprobando si realmente se realiza la conexión (en algunas impresoras el led de estado cambia).
Hola! Muchas gracias por tu plugin… la verdad te leí con ilusión, pero la realidad es que no me dejó instalarla mi celular. Y mi problema persiste, resulta que esta impresora la adquirí para imprimir desde una versión del ERP Odoo que no reconoce la impresora directamente y había usado RawBT, pero sólo la uso de paso, desde el ERP mando a imprimir… la cuestión es que el RawBT pide membresía y pensé que con tu plugin lo solucionaría, pero no funcionó. ¿Tienes alguna sugerencia para esto? en Odoo me pide la IP de la impresora y no la he encontrado por ninguna parte.
Realmente te lo agradecería cantidad me pudieras ayudar con este tema.
Hola. ¿Cuál es el modelo de su impresora?
Hola, quiero consultarte. El plugin es compatible con una impresora. IMP034?
El plugin es gratuito, le invito a probarlo con su impresora.