php

Impresora térmica con PHP y plugin

Desde hace tiempo presenté mi plugin para comunicación con impresoras térmicas que permite imprimir con comandos ESC POS desde cualquier lugar saltando las limitaciones del navegador web y de los lenguajes de programación.

Hoy te enseñaré cómo usarlo con PHP, aunque técnicamente vamos a usar JavaScript ya que si bien podemos hacer peticiones con PHP, necesitamos hacer estas peticiones desde el cliente y no desde el servidor, sobre todo cuando PHP está en un servidor web.

No te preocupes, será un código muy sencillo y funcionará igualmente con o sin internet. Veamos cómo imprimir en una impresora térmica desde PHP pero en modo cliente.

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 PHP.

Preparando los detalles del ticket

Comencemos revisando el código de PHP que nos dará los detalles del ticket a partir de un ID. Este ID podría ser el de una venta, pedido o cualquier cosa.

Por simplicidad yo no usaré bases de datos, pero el ejemplo quedará listo para que tú lo modifiques y puedas traer los datos desde cualquier lugar.

See the gist on github.

Fíjate que el id se pasa por parámetro GET. Yo no estoy haciendo nada con ese id pero en tu caso puedes usarlo para consultar en tu base de datos.

Luego estoy pasando todos esos datos como JSON. Al consultar esa página, la salida es un objeto JSON que tiene varias propiedades y un arreglo:

See the gist on github.

Imprimir ticket con PHP

La página anterior fue hecha con puro PHP. No importa si utilizas un framework y tampoco importa tu estilo de programación. Solo debes asegurarte de que los datos sean mostrados correctamente. Ahora vamos a consultar esos datos desde JavaScript e imprimirlos.

Primero leemos el ID del ticket que vamos a imprimir y lo consultamos en PHP usando AJAX. Te repito que esto puede ser un id de venta, un id de pedido o cualquier otro tipo de dato.

See the gist on github.

Ahora detallesTicket tendrá lo que obtener_detalles_ticket.php haya devuelto. Procedemos a usar el conector del plugin de JavaScript:

See the gist on github.

Finalmente hacemos la impresión en la impresora que la API de PHP nos haya indicado. Esto devolverá un true en caso de que todo haya sido exitoso, y en caso de error devolverá una cadena. Lo manejamos así:

See the gist on github.

Al ejecutar ese código debería imprimirse un ticket así:

Imprimir ticket en PHP desde servidor en internet

Fíjate que tiene los detalles que colocamos en PHP. Obviamente este es un recibo muy simple, ya después puedes crear diseños más complejos agregando imágenes, códigos QR, tablas, etcétera. Por ejemplo:

Tabla impresa en impresora térmica
Ticket impreso con Python en impresora térmica usando Plugin v3

Y la ventaja de esto es que has impreso un ticket desde PHP pero cuando PHP y Apache están en internet en un servidor web o VPS.

Descarga del 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 PHP.

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 PHP.

Página para imprimir ticket

Finalmente veamos la “interfaz” para imprimir, en donde simplemente debemos redireccionar a imprimir_ticket.php pasando el id:

See the gist on github.

Poniendo todo junto

Te dejo el código completo (junto con el conector JavaScript y las funciones completas) en GitHub. También dejo un enlace a replit para que puedas probar la demostración directamente en tu navegador, solo recuerda que debes configurar el nombre de tu impresora, compartirla y ejecutar el plugin.

Una vez que la demostración funcione, podrás imprimir tickets más complejos. Te invito a ver más ejemplos aquí.

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.
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/

Ver comentarios

Entradas recientes

Solución: Unable to extract uploader id con youtube-dl

En mi blog te he enseñado a usar youtube-dl para descargar vídeos con permiso del…

3 días hace

Enviar foto a Telegram usando cURL y Bot

Siguiendo con los tutoriales que consumen la API de los Bots de Telegram con cURL…

3 días hace

cURL y Telegram: enviar mensaje a Bot

En un post previo te enseñé a enviar un mensaje en nombre de un Bot…

4 días hace

Impresora térmica con Telegram usando Bot

En este artículo te voy a mostrar una guía para imprimir en una impresora térmica…

4 días hace

Imprimir PDF con Bot de Telegram

La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…

1 semana hace

Enviar mensaje con bot de Telegram usando JavaScript (lado del cliente)

Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…

1 semana hace

Esta web usa cookies.