106 Como hacer Reportes en PDF del Sistema con LARAVEL(PHP-MySql) FullStack

Duración: 20 min
Módulo: 📝 Historial Clínico, Configuraciones y Reportes Lección 7 de 23

Descripción

📄 Lección 106: Implementación del Módulo de Reportes en PDF

Esta lección marca el inicio del último módulo del sistema: Reportes. Se centra en la configuración de la librería Dompdf en Laravel para la generación de documentos PDF personalizados, a diferencia de los reportes genéricos proporcionados por DataTables.

1. 🛠️ Instalación de la Librería Dompdf

El primer paso para generar reportes PDF personalizados es integrar la librería de PHP Dompdf en el proyecto mediante Composer.

  • Comando de Instalación: Se ejecuta el siguiente comando en la terminal para descargar la dependencia [01:16]:

    Bash

    composer require barryvdh/laravel-dompdf

  • Publicación de Recursos: Una vez instalada, se publica la configuración y los assets de Dompdf para que sean accesibles públicamente en el sistema [03:21]:

    Bash

    php artisan vendor:publish --provider="Barryvdh\DomPDF\ServiceProvider" --tag=config

2. 🗺️ Creación de Rutas y Permisos

Para integrar el nuevo módulo de reportes en el sistema, es necesario definir la navegación y los permisos de acceso.

a. Enrutamiento

Se definen dos rutas clave dentro del módulo de Doctores para manejar el acceso a la interfaz de reportes y la generación del PDF.

  • Vista de Reportes: La ruta GET que abre la interfaz de opciones de reportes [07:03].
    • Ruta: /admin/doctores/reportes
    • Función: reportes en DoctorController.
  • Generación del PDF: La ruta GET que se encargará de ejecutar la generación del archivo PDF [15:10].
    • Ruta: /admin/doctores/pdf
    • Función: PDF en DoctorController.

b. Permisos

Para asegurar el control de acceso, la nueva ruta de reportes se añade al seeder de permisos, permitiendo el acceso a los roles de Admin y Secretaria [07:44].

  • Nota: Si encuentras errores de "Página no encontrada" (404) después de actualizar rutas y permisos, se recomienda limpiar la caché de Laravel con php artisan config:clear, php artisan route:clear y php artisan view:clear [11:27].

3. 🖥️ Diseño de la Interfaz de Reportes

Se crea la vista reportes.blade.php dentro del módulo de Doctores para ofrecer las opciones de generación al usuario.

  • Estructura: La vista utiliza un card que ocupa 4 columnas para mantener un diseño limpio [12:40].
  • Botones de Opción: Se incluye un botón de ejemplo para generar el "Listado del Personal Médico" (Doctores), el cual enlaza a la ruta de generación de PDF [13:04].

4. 📄 Lógica de Generación del PDF

La función PDF en el controlador maneja la generación del documento final.

  • Inclusión de la Librería: Es necesario incluir el namespace de la librería Dompdf al inicio del controlador [18:42]:

    PHP

    use Barryvdh\DomPDF\Facade\Pdf;

  • Carga de la Vista: Se utiliza la fachada PDF::loadView() para indicar a Dompdf qué vista de Blade debe tomar y convertir a PDF [17:46].

    PHP

    $pdf = PDF::loadView('admin.doctores.pdf'); return $pdf->stream();

  • Vista del PDF: Se crea la vista pdf.blade.php (por ahora con contenido simple) que será renderizada por Dompdf y convertida en el documento final [19:15].