tcpdf support for Laravel 6, 7, 8, 9, 10, 11
elibyy/tcpdf-laravel is a Laravel package for tcpdf support for laravel 6, 7, 8, 9, 10, 11.
It currently has 355 GitHub stars and 2.889.031 downloads on Packagist (latest version 13.0.1).
Install it with composer require elibyy/tcpdf-laravel.
Discover more Laravel packages by elibyy
or browse all Laravel packages to compare alternatives.
Last updated
A simple Laravel service provider with some basic configuration for including the TCPDF library
The Laravel TCPDF service provider can be installed via composer by requiring the elibyy/tcpdf-laravel package in your project's composer.json. (The installation may take a while, because the package requires TCPDF. Sadly its .git folder is very heavy)
composer require elibyy/tcpdf-laravel
or
Laravel 5.5+ will use the auto-discovery function.
{
"require": {
"elibyy/tcpdf-laravel": "^9.0"
}
}
If you don't use auto-discovery you will need to include the service provider / facade in config/app.php.
'providers' => [
//...
Elibyy\TCPDF\ServiceProvider::class,
]
//...
'aliases' => [
//...
'PDF' => Elibyy\TCPDF\Facades\TCPDF::class
]
(Please note: TCPDF cannot be used as an alias)
for lumen you should add the following lines:
$app->register(Elibyy\TCPDF\ServiceProvider::class);
class_alias(Elibyy\TCPDF\Facades\TCPDF::class, 'PDF');
That's it! You're good to go.
Here is a little example:
use PDF; // at the top of the file
PDF::SetTitle('Hello World');
PDF::AddPage();
PDF::Write(0, 'Hello World');
PDF::Output('hello_world.pdf');
another example for generating multiple PDF's
use PDF; // at the top of the file
for ($i = 0; $i < 5; $i++) {
PDF::SetTitle('Hello World'.$i);
PDF::AddPage();
PDF::Write(0, 'Hello World'.$i);
PDF::Output(public_path('hello_world' . $i . '.pdf'), 'F');
PDF::reset();
}
For a list of all available function take a look at the TCPDF Documentation
Laravel-TCPDF comes with some basic configuration. If you want to override the defaults, you can publish the config, like so:
php artisan vendor:publish --provider="Elibyy\TCPDF\ServiceProvider"
Now access config/tcpdf.php to customize.
Header() from TCPDF.
PDF::setHeaderCallback(function($pdf){}) overrides this settings.Footer() from TCPDF.
PDF::setFooterCallback(function($pdf){}) overrides this settings.TcpdfFpdi instead of TCPDF.
I've got a pull-request asking for this so I've added the feature
now you can use PDF::setHeaderCallback(function($pdf){}) or PDF::setFooterCallback(function($pdf){})