Laravel Cloud is here! Zero-config managed infrastructure for Laravel apps. Deploy now.

Tcpdf Laravel

elibyy/tcpdf-laravel image

Tcpdf Laravel stats

Downloads
1.3M
Stars
265
Open Issues
17
Forks
65

View on GitHub →

tcpdf support for Laravel 6, 7, 8, 9

Laravel 6-7-8-9-10 TCPDF

A simple Laravel service provider with some basic configuration for including the TCPDF library

TCPDF is not really supported in PHP 7 but there's a plan for supporting it, check this out.

Installation

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

Configuration

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.

  • use_original_header is to used the original Header() from TCPDF.
    • Please note that PDF::setHeaderCallback(function($pdf){}) overrides this settings.
  • use_original_footer is to used the original Footer() from TCPDF.
    • Please note that PDF::setFooterCallback(function($pdf){}) overrides this settings.
  • use_fpdi is so that our internal helper will extend TcpdfFpdi instead of TCPDF.
    • Please note fpdi is not a dependency in my project so you will have to follow their install instructions here

Header/Footer helpers

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){})

elibyy photo

Yet another random developer :)

Cube

Laravel Newsletter

Join 40k+ other developers and never miss out on new tips, tutorials, and more.


Elibyy Tcpdf Laravel Related Articles

Laravel Schema Sentinel: Detect and Fix Database Schema Drift image

Laravel Schema Sentinel: Detect and Fix Database Schema Drift

Read article
Laravel Web Push Notifications image

Laravel Web Push Notifications

Read article
RedBerry to Host Georgia's First Laravel Meetup in Tbilisi image

RedBerry to Host Georgia's First Laravel Meetup in Tbilisi

Read article
Interruptible Jobs in Laravel 13.7.0 image

Interruptible Jobs in Laravel 13.7.0

Read article
A Free Shift to Check If Your App is Ready for Laravel Cloud image

A Free Shift to Check If Your App is Ready for Laravel Cloud

Read article
Laravel Idempotency: HTTP Idempotency Middleware for Laravel image

Laravel Idempotency: HTTP Idempotency Middleware for Laravel

Read article
Curotec logo

Curotec

World class Laravel experts with GenAI dev skills. LATAM-based, embedded engineers that ship fast, communicate clearly, and elevate your product. No bloat, no BS.

Curotec
Shift logo

Shift

Running an old Laravel version? Instant, automated Laravel upgrades and code modernization to keep your applications fresh.

Shift
Tighten logo

Tighten

We help companies turn great ideas into amazing apps, products, and services.

Tighten
Honeybadger logo

Honeybadger

Simple developer-focused application monitoring for Laravel. Error tracking, log management, uptime monitoring, status pages, and more!

Honeybadger
PhpStorm logo

PhpStorm

The go-to PHP IDE with extensive out-of-the-box support for Laravel and its ecosystem.

PhpStorm
The Certification of Competence for Laravel logo

The Certification of Competence for Laravel

A community-driven, proctored assessment across 4 levels designed to validate real-world Laravel knowledge, from Junior to mastery-level Artisan. Official Vue.js, Official Nuxt, Angular, React, JS certifications also available.

The Certification of Competence for Laravel