php - 使用 Headless Chrome,背景颜色不会在所有页面/站点的 PDF 上呈现

标签 php chromium google-chrome-headless

我正在使用 Headless Chrome 将 HTML 呈现为 PDF,但是 PDF 中的背景颜色渲染似乎只适用于某些网页。

这是我正在使用的库:https://github.com/chrome-php/headless-chromium-php

对于下面的代码,如果我将 $url 更改为 https://www.hovec.co.uk/然后它不会呈现任何背景颜色或图像,但它适用于 BBC 网站。

$browserFactory = new BrowserFactory("/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome"); //thats my local Chrome

    $browser = $browserFactory->createBrowser([
      'windowSize' => [794, 1122]
    ]);

    $url='https://www.bbc.co.uk/';
    //$url='https://www.hovec.co.uk/';

    // creates a new page and navigate to $url
    $page = $browser->createPage();
    $page->navigate($url)->waitForNavigation();
    $page->pdf(['printBackground'=>true, 'marginTop' => 0.0, 'marginBottom' => 0.0, 'marginLeft' => 0.0, 'marginRight' => 0.0])->saveToFile($filepath);
    $browser->close();

如有任何帮助,我们将不胜感激!

最佳答案

将此样式添加到 HTML 页面:

    <style>
        html { -webkit-print-color-adjust: exact; }
    </style>

致谢:https://stackoverflow.com/a/60736572/3013633

关于php - 使用 Headless Chrome,背景颜色不会在所有页面/站点的 PDF 上呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59749797/

相关文章:

php - 为什么我们应该在 MySql 查询中转义双引号和 NULL?

python - Flask 在 URL 具有 get 参数时添加斜杠

docker - 包 'chromium-browser' 没有安装候选

google-chrome - 如何在 Azure 云服务或 Azure Functions 中运行 Headless Chrome?

python-3.x - 使用 Selenium 的 headless Chrome - 401 未经授权的访问

php - 需要将表格标题添加到导出的 CSV 文件中

php - 如何获取本地服务器的时区?

selenium - org.openqa.selenium.os.OsProcess checkForError 和 org.apache.commons.exec.ExecuteException : Process exited with an error with Selenium ChromeDriver

php - XDebug 在捕获异常时停止执行

html - 无法选择 3d css 立方体面内的元素。奇怪的