How to generate pdf using tcpdf in laravel with example

In this article, we will explore how to generate PDF using tcpdf in Laravel from views using the TCPDF library. PDF documents are an important part of modern web applications, and Laravel provides an easy-to-use framework for generating them. With the help of TCPDF, a powerful open-source library for generating PDF documents in PHP, we will create a step-by-step guide to help you generate pdf using tcpdf from your Laravel application.

Step 1: Install TCPDF

The first step is to install TCPDF in your Laravel application. You can install it via Composer. Run the following command in your terminal:

composer require tecnickcom/tcpdf

This will download and install TCPDF in your Laravel application.

Step 2: Create a Route

In this step, we will create a route to our PDF generator. Open the routes/web.php file and add the following route:

Route::get('/generate-pdf', 'PdfController@generatePdf');

This will create a route for the generatePdf function of the PdfController.

Step 3: Create a Controller

In this step, we will create a controller that will generate the PDF document. Open your terminal and run the following command to create a controller:

php artisan make:controller PdfController

This will create a new controller called PdfController in the app/Http/Controllers directory. Open the PdfController and add the following code to the generatePdf function:

use Illuminate\Support\Facades\View;use Illuminate\Http\Request;use TCPDF;public function generatePdf(Request $request){    $pdf = new TCPDF();    $pdf::SetTitle('My PDF');    $pdf::AddPage();    $pdf::SetFont('helvetica', '', 12);    $html = View::make('pdf.invoice')->render();    $pdf::writeHTML($html, true, false, true, false, '');    $pdf::Output('my.pdf', 'I');}

This code will create a new instance of TCPDF and set the title of the PDF. We then add a new page and set the font. Finally, we render the Laravel view pdf.invoice as HTML and write it to the PDF. We then output the PDF to the browser with the filename my.pdf.

Step 4: Create a View

In this step, we will create a view that will be used to generate the PDF document. Create a new folder called pdf in the resources/views directory. Inside the pdf directory, create a new file called invoice.blade.php. Add the following code to the invoice.blade.php file:

<h1>Invoice</h1><table>    <thead>        <tr>            <th>Item</th>            <th>Price</th>        </tr>    </thead>    <tbody>        <tr>            <td>Item 1</td>            <td>$10</td>        </tr>        <tr>            <td>Item 2</td>            <td>$20</td>        </tr>        <tr>            <td>Item 3</td>            <td>$30</td>        </tr>    </tbody></table>

This code will create a simple invoice table.

Step 5: Test the PDF Generator

In this final step, we will test our PDF generator. Open your web browser and go to the URL http://localhost:8000/generate-pdf. This will trigger the generatePdf function in the PdfController.

If everything goes well, you should see the invoice table in your browser. To download the PDF, click on the Download button in your browser’s PDF viewer.

Conclusion

In conclusion, TCPDF is a powerful library that can be used to generate PDF documents in PHP. Laravel provides an easy-to-use framework that allows developers to integrate TCPDF into their applications easily. In this article, we have gone through the step-by-step process of generating a PDF document from a Laravel view using TCPDF. With this knowledge, you can now generate custom PDF documents for your web application.

Comments