php

Generar ticket PDF con PHP

En este post te mostraré cómo generar un ticket, tiquete o recibo de pago en formato PDF con PHP. No será una factura, sino un ticket que puede ser impreso en una impresora térmica; de este modo puedes generar tickets e imprimirlos del lado del cliente eligiendo cualquier impresora.

Para lograr esta impresión de ticket en una impresora de 58 milímetros o de 80 milímetros vamos a generar un PDF usando dompdf y después mostrando el documento para imprimirlo en el navegador.

Sobre dompdf

Ya he hecho un post dedicado a dompdf; por favor dale una leída para más detalles. Básicamente es cuestión de contar con composer e instalarlo con:

composer require dompdf/dompdf

Después de instalar dompdf recuerda incluir el autoload:

include_once "./vendor/autoload.php";

Te repito, si quieres más detalles puedes ver mi post para generar un PDF con PHP a través de HTML.

Generación del ticket como HTML

Vamos a ver cómo generar el contenido del PDF, para ello me basaré en mi impresión de ticket con JavaScript y lo combinaré con PHP. El código queda así:

See the gist on github.

Como se puede observar, es una simple tabla HTML generada con PHP a partir de un arreglo. Este arreglo puede provenir de cualquier parte, en este caso lo coloqué manualmente para efectos de simplicidad.

El simple HTML generado es el siguiente, y la medida de la tabla no supera el ancho establecido por la variable de la medida, por lo que será perfecta para imprimirla en una impresora térmica.

HTML generado para ticket en PHP

Ahora lo que resta es tomar este HTML y generar el PDF a partir del mismo: justo lo que hace dompdf.

Generando ticket PDF con PHP

Lo que resta es aplicar el truco que vimos en mi post de dompdf; hacemos que se genere el ticket HTML y después obtenemos la salida para enviarla a dompdf, generamos el documento y lo mostramos para que el usuario pueda imprimirlo o descargarlo:

Una cosa importante es que de todos los tamaños de papel que se ofrecen, encontré que el b7 es perfecto para las impresoras de 58 milímetros.

See the gist on github.

Eso habrá generado un PDF:

Ticket PDF generado con PHP – Listo para imprimir

Aunque parece que el PDF está más grande y que el espacio sobrará, al enviarla a una impresora térmica, el tamaño es adecuado:

Ticket PDF impreso en impresora térmica

Como ves la impresión es perfecta además de que la fuente (DejaVu Sans) le da una buena presentación.

Conclusión

Creo que es la cuarta vez que lo cito, pero te lo digo de nuevo, si tienes dudas o quieres explorar más sobre dompdf visita mi otro post.

También he mostrado varias formas de imprimir tickets, por ejemplo:

Igualmente si te gusta PHP te invito a aprender más sobre el lenguaje en mi blog.

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

Imprimir PDF con Bot de Telegram

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

1 día 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…

2 días hace

PHP: incrustar imagen en base64

El día de hoy te enseñaré algo muy sencillo pero útil al programar con PHP:…

2 días hace

Plugin ESC POS – Actualización 3.4.0: imprimir HTML

El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…

3 días hace

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

1 semana hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

1 semana hace

Esta web usa cookies.