andrew72ru/web-to-print

此包用于使用无头Chrome和Chrome驱动从HTML生成PDF页面

v1.0.0 2022-11-20 08:31 UTC

This package is auto-updated.

Last update: 2024-09-20 14:52:03 UTC


README

此包用于使用无头Chrome和Chrome驱动从HTML生成PDF页面。

要求

此包需要PHP >= 8.0,并安装 ctypeiconv 扩展。您还必须在工作环境中安装Chrome(chromium)和 cromedriver 可执行文件。

使用方法

首先,创建Chrome Driver runner的实例

$logger = new \Psr\Log\NullLogger(); // Choose your Psr\Log\LoggerInterface implementation
$runner = new \Andrew72ru\Web2print\DriverRunner($logger, '/path/to/chromedriver');

之后,您可以调用 PrintToPdf

$printer = new \Andrew72ru\Web2print\PrintToPdf($runner, $logger);
$result = $printer('https://google.com', asBas64: true); // You can get Base64 or binary string
\file_put_contents('google.pdf', \base64_decode($result));

结果,您将在工作目录中有一个 'google.pdf' 文件。

默认选项

PrintToPdf 类有一组默认选项用于运行Chrome和打印命令。

Chrome选项

$defaultArguments = ['--headless', '--run-all-compositor-stages-before-draw'];

打印选项

$defaultParams = [
    'displayHeaderFooter' => false,
    'printBackground' => true,
    'marginTop' => 0,
    'marginBottom' => 0,
    'marginLeft' => 0,
    'marginRight' => 0,
];

请参阅 Chrome手册 中的参考。

测试

在测试之前,您必须将 chromedriver 可执行文件放入项目根目录。

运行测试

vendor/bin/phpunit