Creare PDF in Laravel con Dompdf
Dompdf l'abbiamo già vista; è una libreria per PHP che consente di creare PDF partendo dall'HTML.
Oggi vediamo come usarla in Laravel.
Iniziamo con installare la libreria nel progetto con Composer:
$ composer require barryvdh/laravel-dompdf
(Può essere che dobbiate ricaricare tutta la cartella vendor dopo l'installazione).
Poi create un controller:
$ php artisan make:controller TestController
Qui dentro mettiamoci una cosa del genere:
namespace App\Http\Controllers;
use Barryvdh\DomPDF\Facade as PDF;
class TestController extends Controller {
public function index() {
$data = array(
'nome' => 'Mattepuffo'
);
$pdf = PDF::loadView('pdf', ['data' => $data]);
return $pdf->download('test.pdf');
}
}
Quell'array $data contiene i valori che passeremo alla view; createne una dentro resources/views col nome pdf.blade.php:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
</head>
<body>
<style>
@page {
margin: 0 0;
}
body {
margin-top: 3.3cm;
margin-left: 2cm;
margin-right: 2cm;
margin-bottom: 2cm;
font-size: 14px;
}
header {
position: fixed;
top: 0;
left: 0;
right: 0;
height: 1cm;
background-color: cadetblue;
}
footer {
position: fixed;
bottom: 0;
left: 0;
right: 0;
height: 2cm;
text-align: center;
background-color: chocolate;
}
</style>
<header>
HEADER
</header>
<footer>
FOOTER
</footer>
<main>
<div>
{{$data['nome']}}
</div>
</main>
</body>
</html>
Qui abbiamo impostato header e footer fissi, e abbiamo visualizzato il valore nel centro pagina.
Infine nel file api.php aggiungiamo la nostra route:
Route::get('/test', [TestController::class, 'index']);
Enjoy!
php laravel dompdf pdf html
Commentami!