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.
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.
El plugin inicia un servidor web en localhost:8000 y expone la siguientes rutas.
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íaEl 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 argumentosVeamos 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.
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.
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.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.
Ver comentarios
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 😁