synergitech / chrome-pdf-php
Installs: 37 637
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 7
Forks: 0
Open Issues: 2
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^6.3 || ^7.0
- symfony/process: ~4.0 || ~5.0 || ~6.0 || ~7.0
Requires (Dev)
- phpstan/phpstan: ^1.9
- phpunit/phpunit: ^9.0
README
For pre-V1 documentation click here
For pre-V3 documentation click here
This is a library for creating PDFs from HTML rendered with the SkPDF backend via Chrome. In order to do this, you can opt to use one of the supported drivers:
Installation
composer require synergitech/chrome-pdf-php
chrome-pdf
If you are planning to use the chrome-pdf
driver to render PDFs locally, you should also make sure to install this from npm.
Browserless
If you are planning to use the Browserless driver to render PDFs remotely or take screenshots, you should register for an API key. Remember that local assets cannot be rendered by Browserless.
Usage
A common interface is provided via AbstractPDF. The options presented via this class will be available from all drivers.
You should instantiate one of the available drivers, potentially passing options required by the driver:
use SynergiTech\ChromePDF\Chrome; use SynergiTech\ChromePDF\Browserless; $pdf = new Chrome('path-to-chrome-pdf'); $pdf->renderContent('<h1>test</h1>'); $pdf = new Browserless('your-api-key'); $pdf->renderContent('<h1>test</h1>');
Advanced Browserless Usage
You can optionally use specific endpoints when you create a client.
use SynergiTech\ChromePDF\Browserless; $pdf = new Browserless('your-api-key', Browserless\EndpointsEnum::London);
As this library essentially functions as an API client for Browserless, we have also implemented the screenshot API.
use SynergiTech\ChromePDF\Browserless; // For information on options, see https://www.browserless.io/docs/screenshot#custom-options. // `render()` defaults to using png and fullPage set to false // but jpegs will get a quality of 75 set if you don't set one $file = new Browserless\Screenshot('your-api-key'); $file->render('https://example.com'); $file->render('https://example.com', [ 'fullPage' => true, 'type' => 'jpeg', ]);
Examples
Some examples can be found in the examples
folder.