This repository implements a simple ServiceProvider that creates a singleton instance of the Fpdf PDF library - easily accessible via a Facade in Laravel.
See FPDF homepage for more information about the usage.
Installation using Composer
$ composer require codedge/laravel-fpdf
Enjoy the auto discovery feature.
To use the static interfaces (facades) you need to add the following lines to your config/app.php
. The [1]
is for
registering the service provider, the [2]
are for specifying the facades:
// config/app.php
return [
//...
'providers' => [
// ...
/*
* Application Service Providers...
*/
// ...
Codedge\Fpdf\FpdfServiceProvider::class, // [1]
],
// ...
'aliases' => [
// ...
'Fpdf' => Codedge\Fpdf\Facades\Fpdf::class, // [2]
]
Now you can use the facades in your application.
Run
php artisan vendor:publish --provider="Codedge\Fpdf\FpdfServiceProvider" --tag=config
to publish the configuration file to config/fpdf.php
.
Open this file and enter the correct page settings, if you do not want the defaults.
If you want to use the facade you can see a basic example here:
// app/Http/routes.php | app/routes/web.php
Route::get('/', function () {
Fpdf::AddPage();
Fpdf::SetFont('Courier', 'B', 18);
Fpdf::Cell(50, 25, 'Hello World!');
Fpdf::Output();
});
Of course you can also inject the singleton instance via dependency injection. See an example here:
// app/Http/routes.php | app/routes/web.php
Route::get('/', function (Codedge\Fpdf\Fpdf\Fpdf $fpdf) {
$fpdf->AddPage();
$fpdf->SetFont('Courier', 'B', 18);
$fpdf->Cell(50, 25, 'Hello World!');
$fpdf->Output();
});
If you are wanting to use the Laravel Vapor platform to host your application, a special/specific header will need to be attached to each response that FPDF returns to your browser. To enable the use of this header, add the following environment variable to the Vapor environment file:
FPDF_VAPOR_HEADERS=true