A PHP wrapper for using Google Chrome Headless mode. Convert URL or HTML to a PDF / screenshot. Easy to use and OOP interfaced.

A PHP wrapper for using Google Chrome Headless mode. Convert URL or HTML to a PDF / screenshot. Easy to use and OOP interfaced.

README

Headless Chrome is shipping in Chrome 59. It’s a way to run the Chrome browser in a headless environment. Essentially, running Chrome without chrome! It brings all modern web platform features provided by Chromium and the Blink rendering engine to the command line.

PHPHeadlessChrome provides a simple usage helper class to create PDF and / or screenshots using a Headless Chrome instance.
Trigger PDF / Screenshots generation for webpages / string HTML or local URL.

In order to use this PHPHeadlessChrome helper make sure Google Chrome is correctly installer from version 59 or onwards.

Installation

Install the package through composer:

composer require daandesmedt/phpheadlesschrome

Make sure, that you include the composer autoloader somewhere in your codebase.

Usage

Use the PHPHeadlessChrome tool when you want to convert a webpage / HTML text or (local) HTML file to a PDF or image screenshot.

Working examples

Working examples can be found in the examples folder.

Webpage (URL) to PDF

<?php 

require __DIR__ . '/../vendor/autoload.php';

use daandesmedtPHPHeadlessChromeHeadlessChrome;

$headlessChromer = new HeadlessChrome();
$headlessChromer->setUrl('http://www.google.be');
$headlessChromer->setBinaryPath('C:Program Files (x86)GoogleChromeApplicationchrome');
$headlessChromer->setOutputDirectory(__DIR__);
$headlessChromer->toPDF('output.pdf');

print 'PDF generated to : ' . $headlessChromer->getFilePath();

Webpage (URL) to Screenshot (image)

<?php 

require __DIR__ . '/../vendor/autoload.php';

use daandesmedtPHPHeadlessChromeHeadlessChrome;

$headlessChromer = new HeadlessChrome();
$headlessChromer->setUrl('http://www.google.be');
$headlessChromer->setBinaryPath('C:Program Files (x86)GoogleChromeApplicationchrome');
$headlessChromer->setOutputDirectory(__DIR__);
$headlessChromer->toScreenShot('output.jpg');

print 'Screenshot saved to : ' . $headlessChromer->getFilePath();

HTML (String) to PDF

<?php 

require __DIR__ . '/../vendor/autoload.php';

use daandesmedtPHPHeadlessChromeHeadlessChrome;

$headlessChromer = new HeadlessChrome();
$headlessChromer->setBinaryPath('C:Program Files (x86)GoogleChromeApplicationchrome');
$headlessChromer->setOutputDirectory(__DIR__);
$headlessChromer->setHTML('<h1>Headless Chrome PHP example</h1><h3>HTML to PDF</h3>');
$headlessChromer->toPDF('output.pdf');

print 'PDF generated to : ' . $headlessChromer->getFilePath();

HTML (String) to Screenshot (image)

<?php 

require __DIR__ . '/../vendor/autoload.php';

use daandesmedtPHPHeadlessChromeHeadlessChrome;

$headlessChromer = new HeadlessChrome();
$headlessChromer->setBinaryPath('C:Program Files (x86)GoogleChromeApplicationchrome');
$headlessChromer->setOutputDirectory(__DIR__);
$headlessChromer->setHTML('<h1>Headless Chrome PHP example</h1><h3>HTML to PDF</h3>');
$headlessChromer->toScreenShot('output.jpg');

print 'Screenshot saved to : ' . $headlessChromer->getFilePath();

HTML local file to PDF

<?php 

require __DIR__ . '/../vendor/autoload.php';

use daandesmedtPHPHeadlessChromeHeadlessChrome;

$headlessChromer = new HeadlessChrome();
$headlessChromer->setBinaryPath('C:Program Files (x86)GoogleChromeApplicationchrome');
$headlessChromer->setOutputDirectory(__DIR__);
$headlessChromer->setHTMLFile(__DIR__ . 'assetsHTMLFile.html');
$headlessChromer->toPDF('output.pdf');

print 'PDF generated to : ' . $headlessChromer->getFilePath();

HTML local file to Screenshot (image)

<?php 

require __DIR__ . '/../vendor/autoload.php';

use daandesmedtPHPHeadlessChromeHeadlessChrome;

$headlessChromer = new HeadlessChrome();
$headlessChromer->setBinaryPath('C:Program Files (x86)GoogleChromeApplicationchrome');
$headlessChromer->setOutputDirectory(__DIR__);
$headlessChromer->setHTMLFile(__DIR__ . 'assetsHTMLFile.html');
$headlessChromer->toScreenShot('output.jpg');

print 'Screenshot saved to : ' . $headlessChromer->getFilePath();

Set mobile mode

$headlessChromer->useMobile();

Set window size

$headlessChromer->setWindowSize(375, 667);

Source

Add a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *