Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eckinox/php-puppeteer
PHP Wrapper of Google Chrome Puppeteer for PDF Generation
https://github.com/eckinox/php-puppeteer
Last synced: about 2 months ago
JSON representation
PHP Wrapper of Google Chrome Puppeteer for PDF Generation
- Host: GitHub
- URL: https://github.com/eckinox/php-puppeteer
- Owner: eckinox
- License: mit
- Fork: true (its404/php-puppeteer)
- Created: 2021-11-03T20:00:34.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2022-04-11T19:22:40.000Z (over 2 years ago)
- Last Synced: 2024-09-25T23:31:48.406Z (about 2 months ago)
- Language: PHP
- Homepage:
- Size: 206 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- 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## Getting started
### 1. Install Puppeteer
To install Puppeteer and its dependencies, we recommend you take a look at [Puppeteer's official installation guide](https://developers.google.com/web/tools/puppeteer/get-started) as well as their [official troubleshooting guide](https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md).Here is a snippet for Ubuntu (tested on 20.04) that works well at the time of writing:
```bash
curl -sL https://deb.nodesource.com/setup_16.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 libappindicator3-1 libatk-bridge2.0-0 libgbm1
sudo npm install --global --unsafe-perm puppeteer
sudo chmod -R o+rx /usr/lib/node_modules/puppeteer/.local-chromium
```### 2. Install the package through Composer
Install this package using Composer:```bash
composer require eckinox/php-puppeteer
```### 3. Start generating PDFs!
Check out the examples and the documentation below to learn how to use the library---
## Usage examples
Here are a few very basic examples to get started:### Generating PDFs from an URL
```php
"https://github.com/eckinox/php-puppeteer"
];
$browser = new Browser();
$content = $browser->pdf($config);header("Content-type:application/pdf");
echo $content
```### Generating PDFs from an HTML string
```php
"Hello World!
"
];
$browser = new Browser();
$content = $browser->pdf($config);header("Content-type:application/pdf");
echo $content
```---
## Options
### Content source
There are two options to define the source of the content to render:- `html`: Provide a HTML snippet as a string.
- `url`: Provide a URL to a publicly available webpage.### Puppeteer launch options
- `launchArgs` allows you to add an array of additionnal flags to the Chromium launch arguments.
- `cacheDir` allows you to provide the path to a directory that Chromium can use to store the cache files and other user data.### Viewport options
The `viewport` option will be passed directly to Puppeteer's `page.setViewport()`.Refer to [Puppeteer's `page.setViewport()` docs](https://pptr.dev/#?product=Puppeteer&version=v11.0.0&show=api-pagesetviewportviewport) for more information.
### Goto options (page load)
The `goto` option will be passed directly as the option parameter to Puppeteer's `page.goto()`.Refer to [Puppeteer's `page.goto()` docs](https://pptr.dev/#?product=Puppeteer&version=v11.0.0&show=api-pagegotourl-options) for more information.
### PDF options (margins, size, etc.)
The `pdf` option will be passed directly to Puppeteer's `page.pdf()` when rendering your PDF.Refer to [Puppeteer's `page.pdf()` docs](https://pptr.dev/#?product=Puppeteer&version=v11.0.0&show=api-pagepdfoptions) for more information.
### Cookies
The `cookies` option can be set with an array of cookie, which will be set using Puppeteer's `page.setCookie()`.Refer to [Puppeteer's `page.setCookie()` docs](https://pptr.dev/#?product=Puppeteer&version=v11.0.0&show=api-pagesetcookiecookies) for more information.
---
## A few more tips...
### Starting a new page
You can add following html code in the html where you'd like to start a new page for PDF.```html
```### Having trouble loading fonts?
If you're having trouble loading fonts, check out [the font-loading example](examples).---
## Credits
This package is a fork of [its404/php-puppeteer](https://github.com/its404/php-puppeteer), with updates to allow usage on more modern operating systems and versions of NodeJS, as well as improved documentation.