En este post voy a explicarte cómo puedes crear un conector para el plugin de impresoras térmicas y así poder imprimir desde cualquier lenguaje de programación que hable HTTP.

Como bien sabes, mi plugin no es más que un servidor web que te permite imprimir en impresoras POS, solo debes indicarle las operaciones que debe hacer.

Veamos entonces cómo imprimir en una impresora térmica usando cualquier lenguaje de programación y mi plugin gratuito.

Documentación de la API del servidor

El servidor expone 3 rutas. Pero qué mejor que el código las explique por sí mismo:

La primer ruta es para reenviar la información y que el plugin funcione como proxy como ya lo expliqué en otro post.

Por otro lado si quieres imprimir debes invocar a la ruta /imprimir con el método post enviando un struct así:

Por cierto, la OperacionEscpos se define así:

Nota: en este caso el nombre de operación debe ser una definida en la documentación.

Como puedes ver, los argumentos son un arreglo de cualquier longitud y cualquier tipo.

Finalmente si invocas a GET /impresoras obtendrás las impresoras compartidas disponibles para el plugin (recuerda que no todas son térmicas).

El servidor te devolverá un arreglo de tipo string, en donde cada elemento es el nombre de una impresora.

Creando conector para cualquier lenguaje

Entonces lo que necesitas en tu lenguaje de programación es:

  1. Un cliente HTTP que permita hacer peticiones GET y POST
  2. Poder codificar y decodificar JSON

Eso es todo lo que necesitas.

Para el cliente HTTP en Java por ejemplo tenemos a HttpClient, en JavaScript a fetch, para Python existe requests, en Golang contamos con http.Client y en todos los lenguajes debe haber un equivalente.

Ejemplo: imprimir en impresora térmica con HTTP y JSON

Imprimiendo en impresora térmica desde cualquier lenguaje de programación - Ejemplo de JSON

Imprimiendo en impresora térmica desde cualquier lenguaje de programación – Ejemplo de JSON

Veamos un ejemplo del JSON que debemos enviar para iniciar, cambiar la alineación, escribir texto, un código de barras y recorrer el papel:

Recuerda que será un objeto con las propiedades operaciones, nombreImpresora y serial.

Las operaciones serán un arreglo de objetos que deben tener dos propiedades: nombre y argumentos. nombre es de tipo string y argumentos es un arreglo que puede tener 0 o infinitos argumentos.

Los nombres de las operaciones los he tomado de la documentación al igual que el número de argumentos. Las operaciones que no toman argumentos reciben un arreglo vacío, pero incluso así debes especificarlo.

Al enviar ese JSON con Postman aparecerá el ticket que viste arriba:

Imprimir ticket en impresora POS con Postman

Imprimir ticket en impresora POS con Postman

Fíjate en el cuerpo que estoy enviando (aunque Postman lo hace bonito, recuerda que tú debes enviarlo como un JSON normal sin justificar o alinear) y la respuesta del servidor que es un true en caso de que todo vaya bien.

Si cometes un error, la impresora no existe, la operación no existe o cosas similares se te va a devolver una cadena JSON con el mensaje de error. Por ejemplo:

Error al imprimir con plugin para thermal printer

Error al imprimir con plugin para thermal printer

Por cierto, Postman te permite generar el código para varios lenguajes. Por ejemplo en C# con RestSharp (no lo he probado, solo he copiado el código):

Lo que yo recomiendo es que hagas una clase o librería y por cada invocación a una función agregues un argumento a la lista de operaciones. Por ejemplo en Python:

Si te fijas en el init inicializo una lista vacía.

Luego defino la función agregar_operacion en donde agrego el nombre y los argumentos a la lista y finalmente hasta abajo tenemos una función llamada CargarImagenLocalEImprimir que recibe los argumentos y los agrega a la lista.

Luego para enviarlos simplemente codifico esa lista como JSON y la envío con requests:

Al final tú decides cómo formas el JSON, puedes incluso hacerlo concatenando cadenas.

Te recomiendo ver el código fuente del conector JavaScript, Python y Java para que veas cómo lo hago yo y puedas tomar ideas.

Vídeo de apoyo

Si quieres puedes ver la explicación en vídeo para complementar lo expuesto por escrito:


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,524 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/

2 Comentarios

Hernan Serrano Morales · enero 1, 2023 a las 7:48 pm

Buenas. Necesito que que indiques cuanto vale el plug in con los fuentes.
Soy de Costa Rica. Y estoy desarrollando un software de comandas.

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: