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).
Check out the Laravel version if you're using Laravel Framework.
To install this package, run this command:
composer require wemersonjanuario/pdf
$pdf = new Novanti\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.
$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' => '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
You can see all the available methods in the full documentation file
Feel free to contribute!