Use composer:
composer require elibyy/tcpdf-laravel
Or use package
RequirementsTo use TCPDF in Laravel, we are going to include the tcpdf-laravel package in our project. You can add the package to your project adding the following line in your composer.json file :
{
"require": {
"elibyy/tcpdf-laravel": "5.2.*"
}
}
Implementation
Now that the library is included in your project, you need to enable it in your service provider.Go to your app.php file (yourapp/config/app.php) and add the Laravel TCPDF service provider :
'providers' => [
//...
Elibyy\TCPDF\ServiceProvider::class,
]
Using TCPDF with an alias
You can define an alias (whatever you want) for TCPDF to prevent the direct declaration of a new class element and use the TCPDF::Method syntax without instantiation.
Go to your app.php file (yourapp/config/app.php) and add the alias for the class :
'aliases' => [
//...
'PDF' => Elibyy\TCPDF\Facades\TCPDF::class
]
Now, TCPDF has an alias as PDF and you'll be able to generate PDF's in your controller using :
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use PDF;
class DefaultController extends Controller
{
public function index()
{
$html = '<h1>Hello World</h1>';
PDF::SetTitle('Hello World');
PDF::AddPage();
PDF::writeHTML($html, true, false, true, false, '');
PDF::Output('hello_world.pdf');
}
}
Is a good practice to handle the HTML content in a view instead of manipulate it manually in the controller.
You can draw your PDF content as html in a template, retrieve the html generated by the view and write into the PDF :
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Elibyy\TCPDF\Facades\TCPDF;
class DefaultController extends Controller
{
public function index()
{
$view = \View::make('myview_name');
$html = $view->render();
$pdf = new TCPDF();
$pdf::SetTitle('Hello World');
$pdf::AddPage();
$pdf::writeHTML($html, true, false, true, false, '');
$pdf::Output('hello_world.pdf');
}
}
No comments:
Post a Comment