Exportar en PDF con Laravel.

Laravel Logo

Hola ¿cómo están?

He tenido unos días trabajando con el Laravel y me ha parecido muy sencillo crear aplicaciones. 

En ocasiones, tenemos la necesidad de crear una vista con estilos y demás, y que esta misma vista se exporte en PDF.

En este sentido, te traigo la solución con Laravel.

Lo primero que haremos es abrir una terminal, y crear un proyecto de laravel que llamaremos PDF con el siguiente comando:

composer create-project laravel/laravel PDF

 Accedemos al proyecto en la misma terminal con el comando:

cd PDF

Ejecutamos el siguiente codigo en el root del directorio de nuestro laravel:

composer require barryvdh/laravel-dompdf

Con el código anterior, descargamos esta libreria de dompdf para laravel. 

Luego iremos en el proyecto laravel a la carpeta config y abriremos el archivo app.php.

Buscamos la sección "providers" y al final agregamos lo siguiente:

Barryvdh\DomPDF\ServiceProvider::class,

Luego buscamos en este mismo archivo la sección "aliases" y agregamos lo siguiente:

'PDF' => Barryvdh\DomPDF\Facade::class,

Creamos un controlador llamado imprimirController con el siguiente codigo:

php artisan make:controller imprimirController

Abrimos el archivo imprimirController y creamos una función llamada imprimir.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class imprimirController extends Controller
{
    public function imprimir(){
        
        $pdf = \PDF::loadView('imprimir');
        return $pdf->download('imprimir.pdf');
    }
}

En el código anterior, podemos ver que hay una función llamada loadView que provee el dompdf, y a este le pasaremos por parámetro una vista llamada imprimir. 

Luego observaremos que existe método llamado download, el cual es utilizado para convertir la vista imprimir en pdf.

El próximo paso, es crear la vista llamada imprimir.blade.php.

Para hacer esto, vamos a resources, luego views y creamos el archivo antes mencionado.

Dentro de este archivo debemos realizar la maquetación correspondiente de las informaciones que queremos imprimir.

Ahora vamos a crear una ruta en el archivo wep.php que está dentro de routes:

Route::get('/imprimir', 'imprimirController@imprimir')->name('imprimir');

El último paso sería agregar el enlace en donde nosotros queremos y listo.

Para hacer la prueba, puedes ir a resources y views, y dentro del archivo welcome.blade.php, puedes agregar un enlace de la siguiente manera:

<a href="{{ route('imprimir') }}">Imprime el archivo</a>

Y listo, ya con esto podemos imprimir la información que tenemos tal cual en el archivo imprimir.blade.php.

 

 

Enlaces relacionados:

https://www.nigmacode.com/laravel/Generar-pdf-Dompdf-Laravel

https://github.com/barryvdh/laravel-dompdf

 

 

Etiquetas
Video

Comparte este artículo