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í:

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.

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.

6 comentarios en “Generar ticket PDF con PHP”

    1. Hola. No lo sé, depende del formato, pero todo se podría acomodar de manera vertical para hacer que quepa en el espacio reducido del ticket.
      Saludos 🙂

Dejar un comentario