its404 / php-puppeteer
PHP 对 Google Chrome Puppeteer 的封装
0.1.1
2018-01-07 10:08 UTC
Requires
- php: >=5.4.0
This package is not auto-updated.
Last update: 2024-09-15 05:20:37 UTC
README
此项目提供在 PHP 中使用 Puppeteer 生成 PDF 的功能
- 兼容 PHP 5
- 无依赖包
- 易于使用
依赖
该库基于 Nodejs (7.6 以上) 和 Puppeteer 运行,已在 NodeJS 8 下进行测试。
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
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
安装
使用 Composer 安装 its404/php-puppeteer
。
composer require its404/php-puppeteer
使用方法
参数
库已设置一些默认参数值以支持基本功能,您可以设置自定义参数以覆盖默认值,它支持 Puppeteer API 的所有参数
示例参数数组
$config = [
'html' => "<h1>Hello World</h1>",
'pdf' => [
'path' => '/tmp/test.pdf',
'margin' => [
'top' => '10mm',
'right' => '10mm',
'bottom' => '10mm',
'left' => '10mm',
]
]
];
注意
- 如果同时设置了
$config['pdf']['html']
和 $config['pdf']['url'],则将选择html
。- 如果未设置
$config['pdf']['path']
,则将返回 PDF 数据
导入
您需要在 PHP 类顶部导入此命名空间
use Its404\PhpPuppeteer\Browser;
通过 URL 生成 PDF
您可以通过 pdf
函数通过 URL 生成 PDF
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;
}
您可以在 $config
中设置任何参数以覆盖默认值
通过 HTML 生成 PDF
您可以通过 pdf
函数通过 HTML 代码生成 PDF
public function actionTest2()
{
$config = [
"html" => "<h1>Hello Wolrd</h1>"
];
$browser = new Browser();
$content = $browser->pdf($config);
header("Content-type:application/pdf");
echo $content;
}
调试 类
Browser
有一个参数$isDebug
,如果为true
,则处于调试模式,如果在 Puppeteer 运行过程中发生错误,则从
生成到特定路径的 PDF
您可以通过设置 $config['pdf']['path']
生成到特定路径的 PDF
public function actionTest3()
{
$config = [
"html" => "<h1>Hello Wolrd</h1>",
'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']);
}
}
在 PDF 上启动新页面
您可以在您想要在 PDF 上启动新页面的 HTML 中添加以下 HTML 代码。
<div style="page-break-after:always;"></div>
更多示例?
您可以在 这里 找到更多示例