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.

Relacionado:  API de Shortzon con PHP

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.


Estoy disponible para trabajar en tu proyecto o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.
Si el post fue de tu agrado muestra tu apoyo compartiéndolo, suscribiéndote al blog, siguiéndome o realizando una donación.

Suscribir por correo

Ingresa tu correo y recibirás mis últimas entradas sobre programación, open source, bases de datos y todo lo relacionado con informática

Relacionado:  Montar aplicación web de PHP y MySQL sobre Android

Únete a otros 577 suscriptores


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/

2 Comments

FCC · junio 22, 2020 a las 10:08 pm

Si el cliente quiere factura en formato ticket como sería?

    parzibyte · junio 22, 2020 a las 10:52 pm

    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 🙂

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto: