Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/its404/php-puppeteer
PHP Wrapper of Google Chrome Puppeteer for PDF Generation
https://github.com/its404/php-puppeteer
pdf php5 puppeteer
Last synced: 2 months ago
JSON representation
PHP Wrapper of Google Chrome Puppeteer for PDF Generation
- Host: GitHub
- URL: https://github.com/its404/php-puppeteer
- Owner: its404
- License: mit
- Created: 2018-01-05T09:37:10.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2020-10-09T07:32:20.000Z (about 4 years ago)
- Last Synced: 2024-09-29T19:21:42.352Z (3 months ago)
- Topics: pdf, php5, puppeteer
- Language: PHP
- Homepage:
- Size: 192 KB
- Stars: 30
- Watchers: 1
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
PHP Puppeteer
===========
This project provides the ability to generate PDF with [Puppeteer](https://github.com/GoogleChrome/puppeteer) in PHP- PHP 5 Compatible
- No Dependent Package
- Easy to Use# Dependencies
The library is running based on [Nodejs](https://nodejs.org/en/)(7.6 above) and [Puppeteer](https://github.com/GoogleChrome/puppeteer)
It is tested under NodeJS 8.Installation on CentOS 7:
```
sudo curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
sudo yum install -y nodejs pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 ipa-gothic-fonts xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-utils xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc
sudo npm install --global --unsafe-perm puppeteer
sudo chmod -R o+rx /usr/lib/node_modules/puppeteer/.local-chromium
```Installation on Ubuntu 16.04:
```
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget
sudo npm install --global --unsafe-perm puppeteer
sudo chmod -R o+rx /usr/lib/node_modules/puppeteer/.local-chromium
```# Installation
Install `its404/php-puppeteer` using Composer.
~~~
composer require its404/php-puppeteer
~~~
# Usage
## Parameters
The library has set some default parameter values to support basic features, you can set the customized parameters to override the default ones, it supports all parameters of [Puppeteer API](https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md)__Sample parameter array:__
~~~
$config = [
'html' => "Hello World
",
'pdf' => [
'path' => '/tmp/test.pdf',
'margin' => [
'top' => '10mm',
'right' => '10mm',
'bottom' => '10mm',
'left' => '10mm',
]
]
];
~~~> **Note:**
> 1. If both `$config['pdf']['html']` and $config['pdf']['url'] are set, `html` will be picked up.
> 2. If `$config['pdf']['path']` is not set, will return pdf data## Import
You need to import this namespace at the top of your PHP class~~~
use Its404\PhpPuppeteer\Browser;
~~~__PDF by URL__
You can generate PDF by URL through `pdf` function:
~~~
public function actionTest1()
{
$config = [
"url" => "https://www.highcharts.com/demo/line-basic",
];
$browser = new Browser();
$browser->isDebug = true;
$content = $browser->pdf($config);
header("Content-type:application/pdf");
echo $content;
}
~~~You can set any parameter in `$config` to override the default values
__PDF by HTML__
You can generate PDF by html code through `pdf` function:
~~~
public function actionTest2()
{
$config = [
"html" => "Hello Wolrd
"
];
$browser = new Browser();
$content = $browser->pdf($config);
header("Content-type:application/pdf");
echo $content;
}
~~~
> **Debug** The class `Browser` has one parameter `$isDebug`, it would be debug mode if it's `true`, detailed error messages would be returned from `pdf` function if an error happened during Puppeteer running.__PDF to specific path__
You can generate PDF to a specific path by setting `$config['pdf']['path']`
~~~
public function actionTest3()
{
$config = [
"html" => "Hello Wolrd
",
'pdf' => [
'path' => '/tmp/test.pdf',
]
];
$browser = new Browser();
$browser->isDebug = true;
$result = $browser->pdf($params);
if (isset($result['returnVal'])&& $result['returnVal'] == 0) {
echo "PDF generated successfully";
} else {
echo "Failed to generate PDF";
var_dump($result['output']);
}
}
~~~__Start a new page on PDF__
You can add following html code in the html where you'd like to start a new page for PDF.
~~~
~~~# More Examples?
You can find more examples from [here](https://github.com/its404/php-puppeteer/tree/master/examples)