Comparte en Facebook Twitter Google+

laravel-dompdf

DOMPDF es un paquete desarrollado por  que permite generar documentos en formato PDF, estos pueden ser descargados o impresos en pantalla, y gracias a Laravel podemos usar el motor de plantillas Blade para agregar algo más de funcionalidad como la impresión de variables y datos de forma dinámica.

Instalación de DOMPDF

Agregamos la siguiente linea en la sección required del archivo composer.json

posteriormente ejecutamos

Luego agregamos el service provider  en config/app.php, en Laravel 5.1

en Laravel 5.0

Por supuesto no hay que olvidar agregar el alias en la sección de aliasses

PdfController

Creamos un nuevo controlador que se encargue de generar el documento PDF, en nuestro caso vamos a crear una simple factura de servicio.

Desde la consola ejecutamos

Dentro de este nuevo controlador podemos crear una función llamada invoice.

Al definir la variable $view renderizamos cualquier vista que queramos, usando estilos con css, operando variables en blade tal cual como lo haríamos con cualquier vista de la aplicación.

Esta función llama a la vista invoice.blade.php que crearemos en el directorio resources/pdf

como pueden ver, llamamos los estilos CSS con

En este post no voy a incluir el código de la hoja de estilo, pero puedes descargar esta plantilla, y agregar el archivo .css como pdf.css a la carpeta /public/assets/css. 

Definiendo la ruta

Bien, ahora que tenemos nuestro controlador y la vista correspondiente, vamos a crear la ruta para generar el pdf.

al final ingresando a ruta_de_tu_proyecto/public/pdf vas a poder ver algo como esto

Si en lugar de imprimir en pantalla deseas descargar el archivo directamente solo debes cambiar la respuesta de la función invoice

download() recibe como parámetro el nombre que deseas que tenga el archivo al descargar.

¡Eso es todo! ha sido un pequeño ejemplo sobre el uso de este paquete. Recuerda que puedes dejar tus dudas en la sección de comentarios.

Lecturas recomendadas

Regístrate hoy en Styde y continua mejorando tus habilidades: ver planes.

Lección anterior Integrar Google Maps en Laravel 5 con el componente Phpgmaps Lección siguiente Paginación en Laravel 5.1 con blade-pagination