En este post voy a exponer la lista de funciones disponibles al usar el Plugin para impresoras térmicas ESC POS V3 Desktop. En esta lista vas a encontrar todas las operaciones que el plugin soporta, desde la impresión de texto hasta la impresión de imágenes eligiendo el algoritmo adecuado.
Dicho plugin para impresoras térmicas soporta llamadas a través de HTTP y expone los métodos listados aquí a través de una API REST. Puedes ver la nueva documentación oficial y un diseñador de tickets.
Documentación unificada
Entre tantos artículos y actualizaciones, mantener la información actualizada en distintos puntos es un poco complejo. Por ello es que he creado una página dedicada específicamente al uso de la API que expone el plugin:
https://parzibyte.me/http-esc-pos-desktop-docs/es/
Yo te recomiendo visitar esa página que contiene todo lo que necesitas para comenzar a imprimir en impresoras térmicas desde cualquier lenguaje de programación.
Especificación del plugin
El plugin inicia un servidor web en localhost:8000 y expone la siguientes rutas.
Ruta /imprimir con método POST
Haz una petición de tipo POST a http://localhost:8000/imprimir
enviando un JSON como se describe a continuación. El endpoint siempre devolverá un JSON.
Al invocar a este método debes enviarle
operaciones
: un arreglo de tipo OperaciónnombreImpresora
: el nombre de la impresora como cadenaserial
: un serial para el plugin en caso de que cuentes con uno. No es obligatorio y puedes enviarlo como una cadena vacía
El tipo Operación
es un objeto que tiene las propiedades:
nombre
: el nombre de la operación que encontrarás a continuación en la lista de métodosargumentos
: un arreglo de tipo genérico que incluye los argumentos para la operación que se invoca. Envíalo vacío si la operación no tiene argumentos
Ejemplo para imprimir
Veamos un ejemplo para imprimir texto plano que diga “Hola mundo” en la impresora llamada PT-210. En la lista de métodos, la función para escribir texto dice: EscribirTexto(texto string) por lo que la operación se llama EscribirTexto
y recibe solo un argumento de tipo string, mismo que contiene el texto. El nombre del argumento no importa, solo su contenido y orden.
Entonces el arreglo de operaciones quedaría así:
[
{
"nombre": "EscribirTexto",
"argumentos": [
"Hola mundo"
]
}
]
Como lo vamos a imprimir en la PT-210 y no tenemos serial, nuestra carga útil queda así:
{
"nombreImpresora": "PT-210",
"serial": "",
"operaciones": [
{
"nombre": "EscribirTexto",
"argumentos": [
"Hola mundo"
]
}
]
}
Toma en cuenta que debemos codificar la carga útil como JSON, así que codificada queda así:
{"nombreImpresora":"PT-210","serial":"","operaciones":[{"nombre":"EscribirTexto","argumentos":["Hola mundo"]}]}
Supongamos que ahora queremos cortar el papel además de escribir el texto. Para ello usamos la función de corte que dice: Corte(lineas float64) así que dice que debemos invocar a la función llamada Corte
enviándole la cantidad de líneas, quedando así sin codificar:
{
"nombreImpresora": "PT-210",
"serial": "",
"operaciones": [
{
"nombre": "EscribirTexto",
"argumentos": [
"Hola mundo"
]
},
{
"nombre": "Corte",
"argumentos": [
2
]
}
]
}
Observa que ahora se va a escribir el texto y después se va a cortar avanzando 2 líneas previamente. En caso de que la operación no tenga argumentos, el arreglo argumentos puede ir vacío []
y si tiene más de un argumento solo coloca los valores en orden.
Ruta /impresoras GET
Haz una petición de tipo GET a http://localhost:8000/impresoras
. El endpoint siempre devolverá un JSON que será un arreglo de tipo cadena conteniendo las impresoras que haya encontrado en caso de éxito y, en caso de error, una cadena conteniendo el mensaje de error.
Lista de métodos
A continuación se describe el nombre de la operación y sus argumentos. Debes enviar cada operación como un objeto dentro del arreglo operaciones
, y cada operación debe tener un nombre
que corresponde al nombre de la función, además de los argumentos
que deben ir en el orden en el que se indica entre los paréntesis de cada función.
He movido la lista a la documentación oficial donde puedes explorar todos los métodos disponibles. Puedes comenzar revisando la operación para escribir texto y en la misma página vas a encontrar las demás operaciones.
Hola Luis.
Puede ser que la funcion DescargarImagenDeInternetEImprimir no se pueda utilizar con imágenes .webp?
Gracias
Hola. Me parece que es correcto, al invocarla (con la versión 3.5.0) me aparece:
{ “ok”: false, “message”: “Error invocando a DescargarImagenDeInternetEImprimir: image: unknown format” }
Por lo que, en este momento, no es posible imprimir imágenes webp
¡Muy interesante! estoy analizando tu información.
Gracias por compartir tus conocimientos 😉
Gracias a usted por comentar 😁