This is an example of a PDF document generated using Laravel and DomPDF.
La creación de documentos PDF es un requisito común en las aplicaciones web, especialmente para generar facturas, recibos, certificados, tickets y diversos informes. En este completo tutorial, profundizaremos en el uso de Laravel y DomPDF para generar documentos PDF con imágenes y CSS. Cubriremos opciones de configuración, consideraciones de diseño, tamaño de salida, rendimiento y consultas de bases de datos. Además, analizaremos consejos y trucos para manejar saltos de página, cargar imágenes usando base64 y más.
Antes de comenzar, asegúrese de tener instalado lo siguiente:
DomPDF es una biblioteca PHP popular que le permite generar documentos PDF a partir de contenido HTML. Admite estilos CSS, imágenes y varias opciones de configuración. Al integrar DomPDF con Laravel, puede crear fácilmente documentos PDF sofisticados utilizando plantillas Blade y las potentes funciones de Laravel.
Otras bibliotecas de PDF populares incluyen TCPDF, FPDF y Snappy.
Sin embargo, DomPDF se utiliza ampliamente debido a su facilidad de integración y su sólido conjunto de funciones.
En este tutorial, recorreremos el proceso de configuración de un proyecto Laravel, configuración de DomPDF, creación de un controlador para manejar la generación de PDF, diseño de una plantilla Blade para el contenido del PDF, adición de rutas y optimización del rendimiento. También analizaremos las opciones de configuración avanzadas y brindaremos consejos y trucos para generar documentos PDF de alta calidad.
Este tutorial asume que tienes conocimientos básicos de Laravel y PHP. Si eres nuevo en Laravel, considera consultar la documentación oficial de Laravel para familiarizarte con el marco. De lo contrario, puedes seguir el Laravel Bootcamp para comenzar con Laravel.
Primero, crea un nuevo proyecto de Laravel si aún no tienes uno, o usa un proyecto existente. Por supuesto, puedes omitir este paso si ya tienes un proyecto de Laravel.
composer create-project --prefer-dist laravel/laravel pdf-tutorial cd pdf-tutorial
A continuación, instale DomPDF:
composer require barryvdh/laravel-dompdf
Publicar el archivo de configuración:
php artisan vendor:publish --provider="Barryvdh\DomPDF\ServiceProvider"
Abra el archivo config/dompdf.php. El archivo de configuración contiene varias opciones para personalizar la salida PDF. Aquí puede configurar varias opciones, incluido el tamaño de papel predeterminado, la orientación, la fuente y más.
'default_paper_size' => 'a4',
'orientation' => 'portrait',
'default_font' => 'serif',
Crear un controlador para manejar la generación de PDF:
php artisan make:controller PDFController
En app/Http/Controllers/PDFController.php, agregue el siguiente código:
'Laravel PDF Example', 'date' => date('m/d/Y'), ]; $pdf = PDF::loadView('myPDF', $data); return $pdf->download('document.pdf'); } }
Crear una plantilla Blade para el contenido PDF:
touch resources/views/myPDF.blade.php
Agregue el siguiente contenido a myPDF.blade.php:
Laravel PDF Example {{ $title }}
Date: {{ $date }}
This is an example of a PDF document generated using Laravel and DomPDF.
Agregar rutas para manejar la generación de PDF en rutas/web.php:
use App\Http\Controllers\PDFController; Route::get('generate-pdf', [PDFController::class, 'generatePDF']);
Puedes agregar imágenes al PDF incrustándolas como cadenas codificadas en base64 o usando URL.
Las imágenes se pueden incrustar directamente en la plantilla Blade usando codificación base64. Por ejemplo, para insertar una imagen del público/imágenes así es como puedes hacerlo:
O directamente desde una URL:
Cuando trabaje con conjuntos de datos grandes (por ejemplo, 1000 registros), utilice la paginación o la fragmentación para administrar el uso de la memoria:
$data = DB::table('users')->paginate(50); $pdf = PDF::loadView('myPDF', ['data' => $data]);
Para reducir el tamaño de salida, minimice el uso de imágenes pesadas y opte por gráficos vectoriales cuando sea posible. Además, utilice CSS eficiente.
Asegúrese de que el contenido esté bien estructurado para los saltos de página. Utilice CSS para manejar saltos de página:
.page-break { page-break-after: always; }
Y en tu plantilla Blade:
Para configuraciones más avanzadas, consulte la documentación de DomPDF. Puedes personalizar casi todo, desde los márgenes hasta la forma en que se cargan las fuentes.
Para usar fuentes personalizadas, primero agréguelas a su proyecto y configure DomPDF para usarlas:
'custom_font_dir' => base_path('resources/fonts/'), 'custom_font_data' => [ 'custom-font' => [ 'R' => 'CustomFont-Regular.ttf', 'B' => 'CustomFont-Bold.ttf', ] ],
En tu plantilla Blade:
Al seguir esta guía paso a paso, puedes generar documentos PDF sofisticados usando Laravel y DomPDF, completos con imágenes y estilos CSS. Este tutorial ha cubierto opciones de configuración esenciales, consideraciones de diseño y optimización del rendimiento. Puede ampliar esta base para crear un sistema sólido de generación de documentos para su aplicación Laravel.
Este tutorial es parte de una serie sobre generación de PDF con Laravel. Aquí puede encontrar un repositorio completo con varias plantillas de documentos (facturas, recibos, certificados, tickets, etc.). No dudes en contribuir y ampliar la colección.
¡Feliz codificación!
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3