Download the PHP package andrewdyer/pdf-generator without Composer
On this page you can find all versions of the php package andrewdyer/pdf-generator. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download andrewdyer/pdf-generator
More information about andrewdyer/pdf-generator
Files in andrewdyer/pdf-generator
Package pdf-generator
Short Description A framework-agnostic library for generating PDFs from Twig templates, with support for a swappable driver interface
License MIT
Homepage https://github.com/andrewdyer/pdf-generator
Informations about the package pdf-generator
PDF Generator
A framework-agnostic library for generating PDFs from Twig templates, with support for a swappable driver interface.
Introduction
This library converts Twig templates into PDF documents through an extensible, swappable driver interface. It includes Dompdf and Browsershot driver implementations, with each driver enabled by installing its corresponding dependency. Custom drivers can be introduced by implementing a simple contract, making it straightforward to adapt the generation pipeline to different rendering backends or deployment environments.
Prerequisites
- PHP: Version 8.3 or higher is required.
- Composer: Dependency management tool for PHP.
- Twig: Version ^3.27 is required.
Installation
Getting Started
1. Create a Twig template
Create an HTML template in the application's templates directory:
2. Create a PDF document
Extend PdfDocument and implement options() to configure the output and content() to define the template and data:
3. Set up the PDF generator
Instantiate PdfGenerator with a Twig\Environment and a driver:
Usage
Saving to disk
Returns the full path of the written file:
Streaming inline
Streams the PDF directly in the browser for preview:
Forcing a download
Sends the PDF as a browser download:
Retrieving raw bytes
Returns the raw PDF bytes for further processing, such as attaching to an email:
Drivers
Dompdf
A pure PHP driver requiring no external services or binaries.
Instantiate the driver directly, or pass a pre-configured Options instance:
Browsershot
A driver backed by headless Chromium via Puppeteer, producing pixel-perfect output. Best suited for complex layouts, modern CSS, and web fonts.
Requires Node.js and Puppeteer:
Then install the driver via Composer:
Pass optional binary paths if they are not on the system path:
Custom drivers
Any class implementing DriverInterface can be used as a driver, accepting rendered HTML and returning raw PDF bytes:
Options
A value object passed to the driver alongside the rendered HTML. All properties have sensible defaults:
License
Licensed under the MIT licence and is free for private or commercial projects.