Yet another HTML to PDF Converter based on wkhtmltopdf

Maintainers

πŸ‘ cangelis

Package info

github.com/cangelis/php-pdf

pkg:composer/cangelis/pdf

Statistics

Installs: 64 332

Dependents: 2

Suggesters: 0

Stars: 53

Open Issues: 1

2.2.0 2016-11-25 14:18 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 63c69f75cc5cd442d53081c08f4a8b06fc787d06

  • Can Geliş <geliscan.woop@gmail.com>

pdfwkhtmltopdfpdf converterhtml to pdf

This package is auto-updated.

Last update: 2026-06-09 01:00:58 UTC


README

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).

Installation

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('http://www.laravel.com')->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.

Usage

$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.

Examples

// 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' => 'ftp.example.com',
 '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'))
 ->get();

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

Documentation

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

Contribution

Feel free to contribute!