daandesmedt/phpheadlesschrome

PHP 对 Google Chrome 无头模式的包装。将 URL 或 HTML 转换为 PDF / 截图。易于使用且具有 OOP 接口。

v1.1.2 2024-06-10 12:03 UTC

This package is auto-updated.

Last update: 2024-09-02 11:35:02 UTC


README

无头 Chrome 从 Chrome 59 开始提供。这是在无头环境中运行 Chrome 浏览器的方法。本质上,没有 chrome 运行 Chrome!它将 Chromium 和 Blink 渲染引擎提供的所有现代 Web 平台功能带到了命令行。

PHPHeadlessChrome 提供了一个简单的使用助手类,用于使用无头 Chrome 实例创建 PDF 和 / 或截图。 为网页 / 字符串 HTML 或本地 URL 触发 PDF / 截图生成。

为了使用此 PHPHeadlessChrome 助手,请确保从版本 59 或更高版本正确安装了 Google Chrome。

Latest Stable Version Total Downloads Daily Downloads License

安装

通过 composer 安装此包

composer require daandesmedt/phpheadlesschrome

确保在您的代码库的某个位置包含 composer 自动加载器

使用

当您想将网页 / HTML 文本或(本地)HTML 文件转换为 PDF 或图像截图时,请使用 PHPHeadlessChrome 工具。

工作示例

工作示例可以在 examples 文件夹中找到。

网页(URL)到 PDF

<?php 

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

use daandesmedt\PHPHeadlessChrome\HeadlessChrome;

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

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

网页(URL)到截图(图像)

<?php 

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

use daandesmedt\PHPHeadlessChrome\HeadlessChrome;

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

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

HTML(字符串)到 PDF

<?php 

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

use daandesmedt\PHPHeadlessChrome\HeadlessChrome;

$headlessChromer = new HeadlessChrome();
$headlessChromer->setBinaryPath('C:\Program Files (x86)\Google\Chrome\Application\chrome');
$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(字符串)到截图(图像)

<?php 

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

use daandesmedt\PHPHeadlessChrome\HeadlessChrome;

$headlessChromer = new HeadlessChrome();
$headlessChromer->setBinaryPath('C:\Program Files (x86)\Google\Chrome\Application\chrome');
$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 文件到 PDF

<?php 

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

use daandesmedt\PHPHeadlessChrome\HeadlessChrome;

$headlessChromer = new HeadlessChrome();
$headlessChromer->setBinaryPath('C:\Program Files (x86)\Google\Chrome\Application\chrome');
$headlessChromer->setOutputDirectory(__DIR__);
$headlessChromer->setHTMLFile(__DIR__ . '\assets\HTMLFile.html');
$headlessChromer->toPDF('output.pdf');

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

本地 HTML 文件到截图(图像)

<?php 

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

use daandesmedt\PHPHeadlessChrome\HeadlessChrome;

$headlessChromer = new HeadlessChrome();
$headlessChromer->setBinaryPath('C:\Program Files (x86)\Google\Chrome\Application\chrome');
$headlessChromer->setOutputDirectory(__DIR__);
$headlessChromer->setHTMLFile(__DIR__ . '\assets\HTMLFile.html');
$headlessChromer->toScreenShot('output.jpg');

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

HTML 到 DOM 导出

<?php 

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

use daandesmedt\PHPHeadlessChrome\HeadlessChrome;

$headlessChromer = new HeadlessChrome();
$headlessChromer->setBinaryPath('C:\Program Files (x86)\Google\Chrome\Application\chrome');
$headlessChromer->setOutputDirectory(__DIR__);
$headlessChromer->setHTMLFile(__DIR__ . '\assets\HTMLFile.html');

var_dump($headlessChromer->getDOM());

设置移动模式

$headlessChromer->useMobile();

设置窗口大小

$headlessChromer->setWindowSize(375, 667);

在 PDF 打印中禁用显示页眉和页脚

$headlessChromer->disablePDFHeader();