daandesmedt / phpheadlesschrome
PHP 对 Google Chrome 无头模式的包装。将 URL 或 HTML 转换为 PDF / 截图。易于使用且具有 OOP 接口。
v1.1.2
2024-06-10 12:03 UTC
Requires
Requires (Dev)
README
无头 Chrome 从 Chrome 59 开始提供。这是在无头环境中运行 Chrome 浏览器的方法。本质上,没有 chrome 运行 Chrome!它将 Chromium 和 Blink 渲染引擎提供的所有现代 Web 平台功能带到了命令行。
PHPHeadlessChrome 提供了一个简单的使用助手类,用于使用无头 Chrome 实例创建 PDF 和 / 或截图。 为网页 / 字符串 HTML 或本地 URL 触发 PDF / 截图生成。
为了使用此 PHPHeadlessChrome 助手,请确保从版本 59 或更高版本正确安装了 Google Chrome。
安装
通过 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();