Skip to content
Yet another HTML to PDF Converter based on wkhtmltopdf
Branch: master
Clone or download
Latest commit 63c69f7 Nov 25, 2016
Type Name Latest commit message Commit time
Failed to load latest commit information.
src/CanGelis/PDF Merge pull request #6 from Kimpossibru/patch-1 Nov 9, 2016
tests add flysystem support Nov 15, 2014
.gitignore Initial Commit Jan 5, 2014
.travis.yml remove support for php 5.3 Nov 25, 2016 feature to save multiple times with one call Nov 15, 2014
composer.json Merge branch 'flyversion-latest' Nov 25, 2016
license.txt Initial Commit Jan 5, 2014
phpunit.xml Initial Commit Jan 5, 2014

HTML to PDF Converter based on wkhtmltopdf for PHP

This is a yet another html to pdf converter for php. This package uses wkhtmltopdf as a third-party tool so proc_*() functions have to be enabled in your php configurations and wkhtmltopdf tool should be installed in your machine (You can download it from here).


Add this to your composer.json

    "require": {
        "cangelis/pdf": "2.2.*"

and run composer.phar update

Some examples

$pdf = new CanGelis\PDF\PDF('/usr/bin/wkhtmltopdf');

echo $pdf->loadHTML('<b>Hello World</b>')->get();

echo $pdf->loadURL('')->grayscale()->pageSize('A3')->orientation('Landscape')->get();

echo $pdf->loadHTMLFile('/home/can/index.html')->lowquality()->pageSize('A2')->get();

## Saving the output

php-pdf uses League\Flysystem to save the file to the local or remote filesystems.


$pdfObject->save(string $filename, League\Flysystem\AdapterInterface $adapter, $overwrite)

filename: the name of the file you want to save with

adapter: FlySystem Adapter

overwrite: If set to true and the file exists it will be overwritten, otherwise an Exception will be thrown.


// Save the pdf to the local file system
$pdf->loadHTML('<b>Hello World</b>')
    ->save("invoice.pdf", new League\Flysystem\Adapter\Local(__DIR__.'/path/to/root'));

// Save to AWS S3
$client = S3Client::factory([
    'key'    => '[your key]',
    'secret' => '[your secret]',
$pdf->loadHTML('<b>Hello World</b>')
    ->save("invoice.pdf", new League\Flysystem\Adapter\AwsS3($client, 'bucket-name', 'optional-prefix'));

// Save to FTP
$ftpConf = [
    'host' => '',
    'username' => 'username',
    'password' => 'password',

    /** optional config settings */
    'port' => 21,
    'root' => '/path/to/root',
    'passive' => true,
    'ssl' => true,
    'timeout' => 30,
$pdf->loadHTML('<b>Hello World</b>')
    ->save("invoice.pdf", new League\Flysystem\Adapter\Ftp($ftpConf));

// Save to the multiple locations and echo to the screen
echo $pdf->loadHTML('<b>Hello World</b>')
        ->save("invoice.pdf", new League\Flysystem\Adapter\Ftp($ftpConf))
        ->save("invoice.pdf", new League\Flysystem\Adapter\AwsS3($client, 'bucket-name', 'optional-prefix'))
        ->save("invoice.pdf", new League\Flysystem\Adapter\Local(__DIR__.'/path/to/root'))

Please see all the available adapters on the League\Flysystem's documentation


You can see all the available methods in the full documentation file


Feel free to contribute!

You can’t perform that action at this time.