acucchieri/tcpdf-bundle

Integration of the tcpdf library with Symfony

4.0.0 2024-03-21 10:27 UTC

This package is auto-updated.

Last update: 2024-04-21 13:22:39 UTC


README

The ACTcpdfBundle integrates the TCPDF PHP library with Symfony. This means easy-to-implement and easy-to-ouptput PDF documents in your Symfony application.

Installation

Step 1: Download the Bundle

Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:

composer require acucchieri/tcpdf-bundle

This command requires you to have Composer installed globally, as explained in the installation chapter of the Composer documentation.

Step 2: Enable the Bundle

Then, enable the bundle by adding the following line in the app/AppKernel.php file of your project:

// app/AppKernel.php
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = [
            // ...
            new AC\TcpdfBundle\ACTcpdfBundle(),
        ];

        // ...
    }
}

Usage

Use AC\TcpdfBundle\Pdf\PdfBuider to create your PDF document. This class extends TCPDF, see TCPDF documentation for more informations about PDF generation.

PDF Output

ACTcpdfBundle provide helpers to serve your PDF

Display the PDF in the browser

Return a Response with Content-Disposition: inline

$myPdf->inline('my-pdf.doc');

Download the PDF

Return a Response with Content-Disposition: attachment

$myPdf->download('my-pdf.doc');

Get the PDF as base64 mime multi-part email attachment (RFC 2045)

$myPdf->attachment('my-pdf.doc');

Save the PDF on a filesystem

$myPdf->save('/path/to/my-pdf.doc');

Output the PDF as string

$myPdf->toString();

MultiCell Helper

AC\TcpdfBundle\Pdf\PdfBuilder::addMultiCellRow($cells, $sameHeight, $nobr) allow you to build complex tables, based on MultiCell.

$cells is a multidimensional array. Each cell (array) contains :

  • The data (text or html)
  • The options. Available options :
  • height Cell height
  • width Cell width
  • border Draw the cell borders. Allowed values : 0 or 1. Default = 0
  • align Horz alignment. Allowed values : 'L' (left), 'C' (center), 'R' (right) or 'J' (justify). Default = 'T'
  • valign Vert alignment. Allowed values 'T' (top), 'M' (middle) or 'B' (bottom). Default = 'T'
  • fill Indicates if the cell background must be painted. true or false. Default = false
  • is_html Indicate if the data is html. See TCDPF doc for the supported tags. Default = false

$sameHeight If set to true all the row cells have the same height. Default = false.

$nobr If set to true the row is not break across 2 pages. Default = false.

Example

$data = [
  ['foo' => 'AAA', 'bar' => 123, 'baz' => '<b>text<b>'],
  ['foo' => 'BBB', 'bar' => 456, 'baz' => '<a href="https://domain.td">link</a>'],
  ['foo' => 'CCC', 'bar' => 789, 'baz' => '<ul><li>line 1</li><li>line 2</li></ul>'],
];

foreach ($data as $row) {
    $pdf->addRowCell([
      [$row['foo'], ['with' => 30]],
      [$row['bar'], ['width' => 40, 'align' => 'R']],
      [$row['baz'], ['width' => 50, 'is_html' => true]],
    ]);
}

License

This bundle is under the MIT license. See the complete license in the bundle