terah / wkhtml-wrapper
A fluent interface to the wkhtmltopdf utility
Requires
- php: >=7.4
- psr/log: 1.0.0
- terah/fluent-assert: 6.*
Requires (Dev)
- scrutinizer/ocular: ~1.1
This package is auto-updated.
Last update: 2026-06-19 00:38:04 UTC
README
A simple class to provide a fluent interface to the wkhtmltopdf utility
Install
Get the wkhtmltopdf binary from http://wkhtmltopdf.org/
Get this library via Composer
$ composer require terah/wkhtml-wrapper
Usage
$pdf = new Terah\Wkhtml\Wkhtml('/path/to/wkhtmltopdf', '/path/to/xvfb-run', '--server-args="-screen 0, 1024x768x24"', new Psr\Log\NullLogger());
Super basic usage
This will fetch http://google.com, generate a pdf and save it to your system tmp directory.
$pdf->fromUri('http://google.com/')->generate();
Input Options - URI, file path or html string
Generate pdfs from uri, file or html string and save to your tmp directory.
$pdf->fromUri('http://google.com/')->generate();
$pdf->fromFile('/path/to/html/report.html')->generate();
$pdf->fromString('<html>...</html>')->generate();
Output Options - File, Browser or pdf string
Create a pdf of http://google.com and save it to a file location.
$pdf->fromUri('http://google.com/')->toFile('/path/to/save/file/to.pdf');
Create a pdf from /path/to/html/report.html and output to the browser with a name of my-fancy-report.pdf
$pdf->fromFile('/path/to/html/report.html')->toBrowser('my-fancy-report.pdf');
Generate a pdf from http://google.com/ and return it to the $myPdfString variable
$myPdfString = $pdf->fromUri('http://google.com/')->toString();
Other options - Orientation and temp file locations
$pdf->fromUri('http://google.com/')
// With landscape orientation;
->orienation('Landscape')
// Set the path to xvfb-run
->xvfbBinary('/path/to/xvfb-run')
// Set the args for xvfb-run
->xvfbArgs('--server-args="-screen 0, 1024x768x24"')
// Ship it to the browser
->toBrowser('my-report-name.pdf');
Testing
$ bin/tester tests/
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email terry@terah.com.au instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.