Ticket impreso desde Java usando NetBeans - Comunicar impresora térmica con Java

Imprimir en impresora térmica con Java

En este post vamos a ver cómo comunicar Java con una impresora térmica para imprimir imágenes, códigos QR, códigos de barra, texto, texto con acentos y darle estilo a los tickets desde ese lenguaje de programación.

Al final podrás usar NetBeans, IntelliJ IDEA, VSCode o cualquier editor en donde programes en Java para imprimir tickets en una impresora térmica.

Con el código mostrado aquí vas a ser capaz de imprimir recibos en una impresora térmica con Java ya sea desde la terminal, con Swing, en SpringBoot o cualquier cosa que programes con Java.

Prueba el nuevo diseñador

En estos días he creado un nuevo diseñador web para impresoras térmicas. El diseñador te guiará en el proceso de instalar tu impresora, compartirla e instalar lo necesario para imprimir tus diseños. Pruébalo en:

https://parzibyte.me/apps/ticket-designer/#/first-steps

Una vez que tengas tus diseños vas a poder imprimirlos desde cualquier lenguaje de programación, incluyendo Java.

Clases necesarias y dependencias

Vamos a necesitar algunas clases programadas por mí para la interacción con el plugin de impresión térmica y comandos ESC POS. Puedes ver las clases en: https://github.com/parzibyte/ConectorJavaPluginV3 (dentro de la carpeta src/main/java/parzibyte/conectorpluginv3)

Las clases son:

  1. ConectorPluginV3.java
  2. ImpresionConNombrePluginV3.java
  3. OperacionPluginV3.java

Es tu responsabilidad importar las clases, ya sea copiando los archivos o el código.

También vas a necesitar la dependencia jackson-jr que sirve para convertir a JSON desde Java.

La inclusión depende de tu IDE y entorno, pero yo he usado Maven con NetBeans y solo ha sido cuestión de agregar la siguiente dependencia a mi archivo pom.xml:

De hecho en el repositorio de las clases necesarias está un ejemplo de uso del plugin y también el pom.xml.

Obtener lista de impresoras

Si quieres darle al usuario la posibilidad de elegir su impresora de una lista o quieres mostrar las impresoras compartidas entonces el conector ya cuenta con un método:

Solo debes invocar a ConectorPluginV3.obtenerImpresoras, mismo que es un método estático y que devuelve un arreglo de tipo String.

Nota: recuerda que el método acepta la URL del plugin como parámetro opcional, esto es en caso de que ejecutes el plugin en un puerto distinto al original. Para más información, lee la documentación oficial:

Plugin para impresoras térmicas versión 3

Obtener la lista de impresoras es necesario en algunos casos, ya que el programador debe saber el nombre de la impresora al momento de imprimir un ticket.

Imprimir en impresora térmica con Java

Ticket impreso desde Java usando NetBeans - Comunicar impresora térmica con Java
Ticket impreso desde Java usando NetBeans – Comunicar impresora térmica con Java

Ahora sí vamos a lo que vinimos: la impresión de un ticket con Java. Una vez que tenemos las clases y el nombre de la impresora procedemos a crear una instancia del conector:

ConectorPluginV3 conectorPluginV3 = new ConectorPluginV3();

Y ahora ya podemos invocar a todos los métodos como el método que descarga una imagen y la imprime en la thermal printer, alinea texto, etcétera. Veamos un ejemplo completo:

Después de diseñar tu ticket debes invocar a imprimirEn pasándole el nombre de la impresora térmica.

Ese método devuelve un booleano indicando el éxito de la operación, o lanza una excepción. La salida ya la has visto, es la imagen que acompaña al encabezado.

Nota: te lo digo de nuevo, el constructor acepta una URL como parámetro opcional. Esa URL debe apuntar al lugar donde escucha el plugin en caso de que hayas cambiado el puerto como se indica en:

https://parzibyte.me/blog/2022/09/30/plugin-impresoras-termicas-version-3/

Descarga de plugin

Lo presentado aquí es un conector para un plugin gratuito que he desarrollado. Este plugin permite imprimir en impresoras térmicas desde cualquier lenguaje de programación, por ello es que ahora escribí un conector en Java.

Entonces antes de usar el código aquí presente debes configurar tu impresora y descargar el plugin.

Para instalar tu impresora y compartirla: https://parzibyte.me/blog/2017/12/11/instalar-impresora-termica-generica/

Después descarga el plugin desde: https://github.com/parzibyte/plugin-impresora-termica-v3/releases/tag/3.2.1

Una vez que hayas hecho todos los pasos necesarios y que veas que el plugin funciona entonces puedes comenzar a imprimir desde Java.

Vídeo de apoyo

Siguientes pasos

Ahora ya puedes enviar recibos a impresoras térmicas desde Java de una manera muy fácil.

En resumen debes importar las clases y agregar la dependencia de jackson-jr para después crear una instancia del conector e imprimir.

El código completo junto con la demostración está en GitHub.

Y la documentación así como los detalles del plugin, incluyendo conectores y más métodos (que te animo y casi obligo a leer) están en: https://parzibyte.me/blog/2022/09/30/plugin-impresoras-termicas-version-3/

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.

2 comentarios en “Imprimir en impresora térmica con Java”

Dejar un comentario