acucchieri / tcpdf-bundle
Integration of the tcpdf library with Symfony
Installs: 390
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
Type:symfony-bundle
pkg:composer/acucchieri/tcpdf-bundle
Requires
- php: >=8.1
- symfony/framework-bundle: ^6.0
- tecnickcom/tcpdf: ^6.10
Requires (Dev)
- phpunit/phpunit: ^9.5
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 :
heightCell heightwidthCell widthborderDraw the cell borders. Allowed values : 0 or 1. Default = 0alignHorz alignment. Allowed values : 'L' (left), 'C' (center), 'R' (right) or 'J' (justify). Default = 'T'valignVert alignment. Allowed values 'T' (top), 'M' (middle) or 'B' (bottom). Default = 'T'fillIndicates if the cell background must be painted. true or false. Default = falseis_htmlIndicate 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