Me complace anunciar la versión 3 (y final) de mi plugin que permite imprimir en impresoras térmicas de manera gratuita.
Este plugin combina lo mejor de las otras versiones en una sola. A continuación veamos sus principales características:
Además, existirá una versión con licencia en caso de que quieras adquirirla. A continuación explicaré todos los detalles del plugin.
Acabo de crear un diseñador de recibos para impresoras térmicas en donde podrás diseñar tickets ESC POS, importar, exportar, generar el código para varios lenguajes de programación y revisar una guía paso a paso para descargar, instalar y usar el plugin. Pruébalo en: https://parzibyte.me/apps/ticket-designer/#/first-steps
Este plugin traduce un objeto JSON a comandos ESC POS a través de una API HTTP. Puedes ver toda la documentación del plugin o terminar de leer este post, ambos contienen la información necesaria para imprimir en una impresora térmica con una API unificada desde JavaScript o cualquier lenguaje.
Para que el código funcione necesitas el servidor local ejecutándose y que tu impresora esté compartida. Por favor, sigue los pasos que aparecen en la página previamente enlazada, ya que ahí está la API unificada.
También puedes revisar la documentación completa de la API.
Es momento de visitar https://parzibyte.me/http-esc-pos-desktop-docs/es/area-pruebas.html?operacion=EscribirTexto (por favor, mira bien la URL), debe aparecer algo como lo siguiente en donde podrás imprimir un ticket de prueba y revisar si tu impresora y el plugin están configurados correctamente:
Selecciona tu impresora de la lista y haz clic en Hacer petición. Te repito que el plugin solo funciona en impresoras físicas y térmicas. Si tu impresora no aparece, asegúrate de haberla instalado y compartido correctamente.
Debe imprimirse un hola mundo. Más adelante podrás imprimir tickets más sofisticados como el siguiente:
O como el siguiente:
Por favor nota todo lo que el plugin soporta, y fíjate en el carácter personalizado. Con eso puedes definir tus propios caracteres en una cuadrícula de 24×12.
Sin saberlo ya has consumido la API usando JavaScript del lado del cliente. Puedes ver el código generado para que veas que es realmente sencillo.
Nota: yo he usado una impresora muy económica y sencilla. Si funciona con la mía, funcionará con la tuya. También está disponible una lista de impresoras compatibles.
Nota 2: toda la documentación está en la página del plugin JSON HTTP a ESC POS.
Se van a crear algunos archivos de registro en la ubicación del plugin. Tienen el nombre del mes y año. Por ejemplo, en octubre de 2022 se llamará 2022_10.log
.
Ahí aparecerán todos los errores o avisos. Si el plugin falla, por favor lee los mensajes de error y/o tradúcelos para saber lo que tienes que hacer.
El error open Impresora: the network name cannot be found o La ruta de acceso especificada no es válida es debido a que no has compartido tu impresora, no has especificado la impresora o estás intentando imprimir en una impresora en red local, cosa que no es posible. La impresora debe estar conectada en la computadora donde se ejecuta el plugin y debe estar compartida.
En caso de que haya un error al imprimir, se devolverá un objeto con la propiedad ok
en false
y el mensaje de error en message
, como se describe en la API.
Si quieres puedes cambiar el puerto del plugin pasándole la opción en la línea de comandos. En este caso debes ejecutarlo desde la terminal así:
plugin_impresoras_termicas_v3_prod_64.exe --puerto=PUERTO
O puedes crear un acceso directo (aprovechando también para que inicie junto con el sistema, cosa que explico más adelante) y pasarle la opción desde ahí:
En este caso estoy indicando que quiero que ocupe el puerto 8484. Tú puedes elegir el puerto que prefieras, siempre y cuando sea válido. Recuerda que el puerto por defecto es el 8000.
Nota: si cambias el puerto de escucha del plugin, también debes cambiar la URL al momento de invocar a los conectores.
Por favor, lee el siguiente post en donde lo explico con detenimiento: https://parzibyte.me/blog/2022/10/02/contratar-licencia-para-plugin-impresora-termica-v3/
El plugin expone una API HTTP REST donde, al enviarle un JSON, imprimirá dichas operaciones en la impresora térmica. Puedes usar cualquier lenguaje de programación para consumir la API.
Aquí tengo algunos ejemplos en PHP, C#, Java, Python, Node.js y de JavaScript. Más ejemplos vienen en camino.
Si quieres puedes hacer que el plugin inicie con Windows, solo debes crear el acceso directo en el Startup folder (recuerda que en el mismo acceso directo puedes configurar el puerto).
Más información en el siguiente enlace: https://parzibyte.me/blog/2019/10/14/ejecutar-programa-inicio-windows/
Un usuario del plugin me ha comentado que, en Windows, se puede crear una tarea programada para ejecutar el plugin al encender la computadora.
No puse instrucciones sobre cómo iniciar automáticamente en Linux o pasar la opción del cambio de puerto, pero si eres de Linux ya debes saber cómo hacerlo, hay muchas maneras ya que ese sistema es más personalizable.
Ya existe un plugin para imprimir en impresoras térmicas Bluetooth desde Android, es uno distinto al presentado en este post pero que cumple con la misma función. Mira los detalles en: https://parzibyte.me/blog/2022/11/01/plugin-gratuito-impresoras-termicas-bluetooth-android/
Antes de existir esta versión existieron la versión 1 y 2. Esas versiones ya no están disponibles, solo están como código fuente para evitar confusiones con esta versión.
El plugin versión 3 es la única versión disponible para su uso.
Los conectores disponibles manejan el mismo número de argumentos y funciones. ya que al final solo sirven de puente para comunicarse con el plugin. A continuación dejaré los métodos y la documentación escrita por mí.
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 buenas se puede imprimir por el IP si tengo una impresora conectada a la red?
hola, estoy intentando y me sale este error y tengo la impresora compartida Error en el servidor: open \\DESKTOP-3KGHJI9\: The specified path is invalid.
Me parece que usted no está indicando el nombre de impresora, lo está enviando como una cadena vacía
cómo puedo hacer que el software del punto de venta abra la caja registradora automático?me puede ayudar 👀
Claro, si usa el plugin seguramente ya debería abrir el cajón automáticamente, solo asegúrese de que el cajón está conectado a la impresora. Si necesita ayuda o modificaciones, estoy para servirle en https://parzibyte.me/#contacto
Hola Parzi, el plugin me funciona super, lo unico es que no he podido imprimir imagen , siempre me sale :Error al imprimir: Error en el servidor: Error invocando a ImprimirImagenEnBase64: El ancho de la imagen debe ser multiplo de 8. Requiero tu asesoria.
Hola. Claro que sí, de hecho el mismo plugin le está diciendo el problema: el ancho de la imagen debe ser múltiplo de 8 (o sea, divisible entre 8). Depende de lo que usted use se puede ajustar eso. Proporciono consultorías y ayuda personalizada en https://parzibyte.me/#contacto
Buen dia, tengo problemas para imprimir acentos aun con los botones de los ejemplos.
En la doc. mencionas que los parametros son num pagina y pagina, de donde saco estos num.
estoy imprimiendo con una Epson Tm-t88v.
De antemano Gracias
Buen día. Depende de las páginas de códigos que soporte su impresora, eso cambia dependiendo de cada una. Recomiendo probar con varias combinaciones en caso de no encontrar las páginas de códigos de su impresora.
Recuerde que si necesita ayuda puede enviarme un mensaje en https://parzibyte.me/#contacto para brindarle una consultoría
Hola, Buenas tardes
El plugin para mac existe
Gracias
Hola, buenas tardes. Por el momento todavía no, en caso de que exista lo anunciaré por aquí mismo en mi blog
como puedo aumentar el tamano de la letra?
Con EstablecerTamañoFuente, la lista completa de funciones está en: https://gist.github.com/parzibyte/2f36655ef9d6ea8e6de73c6e09bbc735#file-documentacion-txt
Hola, descargue el plugin V3.2 32Bits lo ejecute por el puerto 8585 pues el 8000 se encuentra ocupado. Cuando ingreso a su pagina para imprimir prueba no me aparece ninguna impresora. Agradezco indicarme que hace falta. Gracias
Hola. La página de prueba supone que usa el puerto por defecto, en ese caso tendría que dejar el puerto intacto para las pruebas, o ajustar el código de la página de prueba para que envíe la petición al puerto configurado
Hola Parzybite, tengo una pregunta al momento de imprimir cualquier ticket siempre sale ese pie de pagina? y otra duda, estoy trabajando en un proyecto de nextjs, me srive perfectamente la versio de javascript?. Gracias igualmente por el recurso
Hola, gracias por sus comentarios. Claro, el plugin es totalmente gratuito pero usted debe respetar mis créditos o puede optar por obtener una licencia para removerlos: https://parzibyte.me/blog/2022/10/02/contratar-licencia-para-plugin-impresora-termica-v3/
En cuanto a su pregunta, depende de dónde vaya a servir la app, puede revisar el conector de Node: https://parzibyte.me/blog/2023/06/27/impresora-termica-node-js/ o el conector de JS del lado del cliente: https://parzibyte.me/blog/2022/09/30/comunicar-javascript-impresora-termica-usando-plugin-v3/
hola parzibyte, a mi me funciona perfecto el plugin, solo tengo un problema con la letra ñ y saber como el codigo para detectar las impresoras y dejar guardado el nombre de esa impresora en la base de datos. recien te pague 1 año del plugin. gracias.
Hola. Para la letra ñ puede probar varios enfoques descritos en: https://parzibyte.github.io/ejemplos-javascript-plugin-v3/acentos.html
Recuerde que siempre recomiendo probar primero con el plugin gratuito.
Para el caso de guardar el nombre de la impresora en la base de datos, eso es responsabilidad suya y depende de su propia arquitectura