¡Hola! ¿Cómo están? ¡Bienvenidos de nuevo! Continuando con el curso de Laravel, hoy empezaremos con los reportes PDF en Laravel DOMPDF. Aprovecharemos el paquete DOMPDF para crear informes en PDF dentro de nuestra aplicación.
¡Empecemos!
¿Qué es DOMPDF?
DOMPDF es un paquete de Laravel que simplifica la generación de archivos PDF a partir de vistas HTML. Permite convertir las vistas Blade de Laravel, que contienen HTML, en archivos PDF que los usuarios pueden descargar o visualizar.
Instalar el paquete DOMPDF
Con Composer realizamos la instalación del paquete DOMPDF en Laravel. Lo primero, es abrir la Terminal en Linux o Mac, CMD en Windows, nos dirigimos al directorio raíz de nuestro proyecto, escribimos la siguiente línea de código:
composer require barryvdh/laravel-dompdf
Utilizar el paquete DOMPDF de Laravel
Vamos a utilizar el reporte generado en la clase anterior para generar una versión en formato PDF, lista para ser impresa. Una vez instalado el paquete, ahora vamos a generar los reportes PDF en Laravel,
Utilizar DOMPDF en controlador de Laravel
Primeramente en nuestro controlador “AlumnoController” realizamos la referenciar a la clase “PDF”.
use PDF;
A continuación, crearemos un método llamado ‘reportPDF’ donde haremos uso del paquete DOMPDF. En primer lugar, obtendremos el listado de alumnos que están inscritos en al menos un curso y luego regresaremos a la vista para generar el archivo PDF (Aquí haremos uso de las funciones proporcionadas por DOMPDF para generar el archivo PDF, tales como la vista HTML que se utilizará, el tamaño de la hoja, entre otras configuraciones).
public function reportPDF() { $data = [ 'alumnos' => $this->cursos->obtenerLosAlumnosIncritosAUnCurso(), ]; $pdf = PDF::loadView('alumnos.pdf', $data); return $pdf->stream(); }
Crear las rutas para reporte PDF
Continuando, ahora vamos a definir la ruta para el método “get” correspondientes a las funcionalidad de impresión de reportes PDF en Laravel, en archivo web.php emplearemos la función “Get” de HTTP.
Route::get('/alumnos/reporte/pdf', [AlumnoController::class, 'reportPDF'])->name('alumnos.reportPDF');
Generar el reporte PDF en Laravel
Por último, lo que haremos es crear la vista para generar el reporte PDF en Laravel. En una primera instancia, implementaremos la navegabilidad en la vista del “Reporte de Alumnos”.
En el archivo report.blade.php de la funcionalidad “Alumno” añadimos el siguiente código:
<a class="new-button" target="_blank" href="{{ route('alumnos.reportPDF') }}">Reporte Alumno PDF</a>
Seguidamente, en la ruta “resources/views/alumnos” creamos el archivo pdf.blade.php. En este archivo, definiremos la vista de impresión utilizando código HTML con los datos enviados desde el controlador ‘AlumnoController’.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Curso de Laravel</title> </head> <body> <h2>Reporte Alumnos</h2> <br> <table> <tr> <th>Alumno</th> <th>Edad</th> <th>Materias</th> </tr> @foreach ($alumnos as $alumno) <tr> <td>{{ $alumno->nombre_apellido }}</td> <td>{{ $alumno->edad }}</td> <td> @foreach($alumno->cursos as $curso) {{ $curso->materia }}<br> @endforeach </td> </tr> @endforeach </table> </body> </html>
DOMPDF es una herramienta valiosa para la creación dinámica de documentos PDF, fácil de implementar en nuestros proyectos y cuenta con una flexibilidad y facilidad de uso en la generación de informes.
La próxima clase continuaremos con la generación de reportes, esta vez con la herramienta de Excel. Recuerda que puedes descargar el código fuente de esta clase y todas las demás clases en el repositorio de GitHub totalmente gratis.
¡Te espero en la siguiente clase!
Saludos y éxitos.

Victor Peña
Desarrollador de software Backend Developer, experto en Laravel Framework, PHP, JavaScript y MySQL. Creador de contenidos de emprendimiento y desarrollo de software.
Pingback: Transacciones en Laravel - Norvic Software