Actualización plugin impresoras: PowerShell, ping en versión y base de datos

En estos días he actualizado mis plugins que permiten la impresión en impresoras térmicas por Bluetooth o USB ya que los estoy preparando para que funcionen correctamente con mi diseñador de tickets.

La última versión de cada plugin ya está publicada en los enlaces correspondientes, aquí solo voy a anunciar cuáles son las nuevas características y cómo es que los programadores pueden aprovecharlas.

Plugin Desktop

Este plugin también se conoce como Plugin v3, pero ahora lo llamo Desktop ya que permite la impresión en sistemas de escritorio como Windows, Raspbian, Debian, etcétera. Las actualizaciones de la API del plugin son:

Al usar GET en la ruta /version puedes obtener la versión del plugin así como la información del sistema operativo. Es útil para hacer un ping al plugin y revisar que esté en ejecución. Te va a devolver un JSON parecido al siguiente:

{"version":"3.2.1","plataforma":"Desktop","sistemaOperativo":"windows"}

Agregada la ruta GET /impresoras_windows_ps para obtener la lista de impresoras pero usando el Powershell. La ruta GET /impresoras sigue funcionando correctamente, pero usa wmic que en algún momento será obsoleto, así que se recomienda migrar.

En este momento, mientras escribo el post, todavía no he migrado los conectores. Los usuarios que tengan ese problema pueden modificar el conector para que apunte a la ruta correcta

Plugin Android

Si tienes una impresora térmica Bluetooth y quieres imprimir desde Android, este es tu plugin. Se hicieron algunas actualizaciones muy parecidas:

Al invocar a GET /version se obtiene la versión del plugin. Útil para hacer un ping. Al hacer una petición a esa ruta, se obtiene algo parecido al siguiente JSON:

{"version":"1.0","plataforma":"Android","sistemaOperativo":"android"}

Se ha modificado la ruta GET /impresoras. Anteriormente, se hacía un escaneo Bluetooth para llenar y mostrar la lista. En varias ocasiones la petición ni siquiera se resolvía, ya sea porque no se puede escanear si el plugin no está en primer plano, el Bluetooth está desactivado, etcétera.

La solución al problema descrito anteriormente fue usar una base de datos como caché. Cuando, desde el plugin se selecciona “Ver impresoras disponibles” y la lista se llena, todos los dispositivos que aparecen ahí serán agregados a la base de datos (usando la MAC como clave, evitando duplicados).

Al invocar a GET /impresoras se lee la base de datos. Entonces, si quieres que la impresora aparezca en la lista, primero debiste ver las impresoras disponibles.

Por cierto, a diferencia de la versión Desktop, en este caso las impresoras devueltas son una lista de objetos, y cada objeto tiene la propiedad name, mac y type.

¿Esto afecta las licencias?

No, no afecta a los usuarios que tienen una licencia. Ellos pueden seguir usando las versiones anteriores o las actuales, la licencia funciona exactamente igual.

Recomiendo actualizar y migrar para ir haciendo pruebas. Además, el método para hacer ping es útil para asegurarse de que el plugin se está ejecutando.

Descargar plugins

Si llegaste aquí y todavía no conoces los plugin de los que hablo, puedes revisarlos a continuación.

Para la versión Desktop puedes ver la presentación en: https://parzibyte.me/blog/2022/09/30/plugin-impresoras-termicas-version-3/ y su descarga en: https://github.com/parzibyte/plugin-impresora-termica-v3/releases/latest

En el caso de la versión Android, revisa su presentación en: https://parzibyte.me/blog/2022/11/01/plugin-gratuito-impresoras-termicas-bluetooth-android/ y descarga en: https://github.com/parzibyte/plugin-impresora-termica-bt-android/releases/latest

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

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.

Dejar un comentario

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