inspiredminds / contao-isotope-pdf-templates
Adds a new document type in Contao Isotope where you can define PDF templates.
Fund package maintenance!
fritzmg
Installs: 2 694
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 5
Forks: 3
Open Issues: 1
Type:contao-bundle
Requires
- php: >=7.4
- contao/core-bundle: ^4.13
- isotope/isotope-core: ^2.5
- menatwork/contao-multicolumnwizard-bundle: ^3.4
- mpdf/mpdf: ^8.0
- symfony/config: ^5.4
- symfony/dependency-injection: ^5.4
- symfony/event-dispatcher: ^5.4
- symfony/event-dispatcher-contracts: ^1.0 || ^2.0 || ^3.0
- symfony/filesystem: ^5.4
- symfony/finder: ^5.4
- symfony/http-kernel: ^5.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.0 || ^3.0
README
Contao Isotope PDF Templates
Adds a new document type in Contao Isotope where you can define PDF templates.
Important: version 2.x of this extension uses mPDF instead of TCPDF. Here are some things to note:
- mPDF only supports the following fonts: https://mpdf.github.io/fonts-languages/fonts-in-mpdf-7-x.html.
- mPDF has superior HTML and CSS capabilities.
- It is recommended to use a full HTML markup in your
iso_document_…
template. - By default only PDF documents up to PDF version 1.4 are supported by the FPDI PDF-Parser used by mPDF, thus you may need to convert them to this version beforehand. However, you can buy the commercial version in order to be able to convert any PDF.
Custom fonts
Since version 2.1.0
you are able to integrate custom fonts directly via the
back end. First you need to upload the TTF files into a directory within /files
.
Then you need to chose that folder in the font settings of the document. After
choosing the correct folder you need to save the settings, then you will be able
to configure the discovered font files.
For each font you want to use you need enable it and set the variant and name of the font in lowercase.
Note: mPDF maps certain common font names to its own default fonts. If a font is not working, try setting a more unique font name.
Event
The extension provides a ModifyPdfEvent
with which you can access the mPDF
Isotope Document
instance, in order
to change some parameters or add additional variables etc.
// src/EventListener/ModifyPdfEventListener.php namespace App\EventListener; use InspiredMinds\ContaoIsotopePdfTemplatesBundle\Event\ModifyPdfEvent; use Symfony\Component\EventDispatcher\Attribute\AsEventListener; #[AsEventListener(ModifyPdfEvent::EVENT_NAME)] class ModifyPdfEventListener { public function __invoke(ModifyPdfEvent $event): void { // Access the mPDF object instance $mpdf = $event->getPdf(); // Access the Isotope Document instance $document = $event->getDocument(); } }