Requirements
- PHP version 7.1 or higher
- DOM extension
- MBString extension
- php-font-lib
- php-svg-lib
Note that some required dependencies may have further dependencies (notably php-svg-lib requires sabberworm/php-css-parser).
Recommendations
- GD (for image processing)
- Additionally, the IMagick or GMagick extension improves image processing performance for certain image types
- OPcache (OPcache, XCache, APC, etc.): improves performance
Visit the wiki for more information: https://github.com/dompdf/dompdf/wiki/Requirements
Install with composer
To install with Composer, simply require the latest version of this package.
composer require dompdf/dompdf
Make sure that the autoload file from Composer is loaded.
// somewhere early in your project's loading, require the Composer autoloader
// see: http://getcomposer.org/doc/00-intro.md
require 'vendor/autoload.php';
Download and install
Download a packaged archive of dompdf and extract it into the directory where dompdf will reside
- You can download stable copies of dompdf from https://github.com/dompdf/dompdf/releases
- Or download a nightly (the latest, unreleased code) from http://eclecticgeek.com/dompdf
Use the packaged release autoloader to load dompdf, libraries, and helper functions in your PHP:
// include autoloader
require_once 'dompdf/autoload.inc.php';
Note: packaged releases are named according using semantic versioning (_dompdfMAJOR-MINOR-PATCH.zip). So the 1.0.0 release would be dompdf_1-0-0.zip. This is the only download that includes the autoloader for Dompdf and all its dependencies.
Install with git
From the command line, switch to the directory where dompdf will reside and run the following commands:
git clone https://github.com/dompdf/dompdf.git
cd dompdf/lib
git clone https://github.com/PhenX/php-font-lib.git php-font-lib
cd php-font-lib
git checkout 0.5.1
cd ..
git clone https://github.com/PhenX/php-svg-lib.git php-svg-lib
cd php-svg-lib
git checkout v0.3.2
cd ..
git clone https://github.com/sabberworm/PHP-CSS-Parser.git php-css-parser
cd php-css-parser
git checkout 8.1.0
Require dompdf and it’s dependencies in your PHP. For details see the autoloader in the utils project.
Framework Integration
- For Symfony: nucleos/dompdf-bundle
- For Laravel: barryvdh/laravel-dompdf
- For Redaxo: PdfOut
Quick Start
Just pass your HTML in to dompdf and stream the output:
// reference the Dompdf namespace
use Dompdf\Dompdf;
// instantiate and use the dompdf class
$dompdf = new Dompdf();
$dompdf->loadHtml('hello world');
// (Optional) Setup the paper size and orientation
$dompdf->setPaper('A4', 'landscape');
// Render the HTML as PDF
$dompdf->render();
// Output the generated PDF to Browser
$dompdf->stream();
Setting Options
Set options during dompdf instantiation:
use Dompdf\Dompdf;
use Dompdf\Options;
$options = new Options();
$options->set('defaultFont', 'Courier');
$dompdf = new Dompdf($options);
or at run time
use Dompdf\Dompdf;
$dompdf = new Dompdf();
$options = $dompdf->getOptions();
$options->setDefaultFont('Courier');
$dompdf->setOptions($options);
See Dompdf\Options for a list of available options.
Resource Reference Requirements
In order to protect potentially sensitive information Dompdf imposes restrictions on files referenced from the local file system or the web.
Files accessed through web-based protocols have the following requirements:
- The Dompdf option “isRemoteEnabled” must be set to “true”
- PHP must either have the curl extension enabled or the allow_url_fopen setting set to true
Files accessed through the local file system have the following requirement:
- The file must fall within the path(s) specified for the Dompdf “chroot” option