Documente Academic
Documente Profesional
Documente Cultură
Comunidad Login
En este tutorial aprenderás como generar archivos PDF desde Laravel 5.5, la idea es crear una
tabla de productos, listarlos y luego generar un PDF en base a esos datos.
Desde que tengo el canal me han pedido que enseñara como generar PDF desde Laravel 5.5 y
aquí lo tienen. En esta oportunidad usaremos el paquete creado por el gran barryvdh.
return [
'providers' => [
Barryvdh\DomPDF\ServiceProvider::class,
],
'aliases' => [
'PDF' => Barryvdh\DomPDF\Facade::class,
],
];
El parametro -a hace referencia a --all y nos crea controlador, entidad, factory y migración
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('products');
}
}
use Illuminate\Database\Seeder;
Ahora si, con esto listo ejecutamos el comando que me creará las tablas y las llenará de datos
php artisan migrate:refresh --seed
Route::get('/', 'ProductController@index')->name('products');
Route::get('descargar-productos', 'ProductController@pdf')->name('products.pdf');
namespace App\Http\Controllers;
use App\Product;
use Illuminate\Http\Request;
use Barryvdh\DomPDF\Facade as PDF;
return $pdf->download('listado.pdf');
}
}
En el método pdf() hacemos uso del componente y lo que necesitamos hacer es trabajar con el
comando PDF::loadView para cargar una vista ya preparada y de donde se tomará el diseño
para el PDF.
Vamos al diseño
Vistas
Archivo resources/views/layout.blade.php
<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<div class="row">
<div class="col-xs-12">
@yield('content')
</div>
</div>
</div>
</body>
</html>
Archivo resources/views/products.blade.php
@extends('layout')
@section('content')
<h1 class="page-header">Listado de productos</h1>
<table class="table table-hover table-striped">
<thead>
<tr>
<th>ID</th>
<th>Producto</th>
<th>Descripción</th>
<th>Stock</th>
</tr>
</thead>
<tbody>
@foreach($products as $product)
<tr>
<td>{{ $product->id }}</td>
<td>{{ $product->name }}</td>
<td>{{ $product->description }}</td>
<td class="text-right">{{ $product->stock }}</td>
</tr>
@endforeach
</tbody>
</table>
<hr>
<p>
<a href="{{ route('products.pdf') }}" class="btn btn-sm btn-primary">
Descargar productos en PDF
</a>
</p>
@endsection
Archivo resources/views/pdf/produtcs.blade.php
@extends('layout')
@section('content')
<table class="table table-hover table-striped">
<thead>
<tr>
<th>ID</th>
<th>Producto</th>
<th>Descripción</th>
<th>Stock</th>
</tr>
</thead>
<tbody>
@foreach($products as $product)
<tr>
<td>{{ $product->id }}</td>
<td>{{ $product->name }}</td>
<td>{{ $product->description }}</td>
<td class="text-right">{{ $product->stock }}</td>
</tr>
@endforeach
</tbody>
</table>
@endsection
En las vistas has visto como seguimos hablando el idioma Laravel, sin tanto trauma ni cosas
complicadas, todo lo logramos básicamente con el gran componente barryvdh/laravel-dompdf
Si llegasta hasta aquí dime ¿qué te pareció? y ¿qué quisieras ver en esta página? Nos vemos
en el siguiente Post.
Adquiere en preventa y aprovecha un gran descuento TDD en Laravel
Comparte en
0
0
0
1
0
0
1
1
0
0
0
0
0
0
Más información