Reportes PDF en Laravel DOMPDF

Reportes PDF en Laravel DOMPDF

¡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.

Desplegar tu proyecto Laravel a producción

Adquiere la guía en formato PDF

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

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.

1 comentario en “Reportes PDF en Laravel DOMPDF”

  1. Pingback: Transacciones en Laravel - Norvic Software

Deja un comentario

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