node.js - 当我尝试将 PDF 保存在磁盘上时,Puppeteer 不渲染颜色、背景颜色

标签 node.js puppeteer

这是我的 node.js 和 HTML 模板代码,它从 HTML 模板创建 PDF。它不是把颜色。

const puppeteer = require('puppeteer');

(async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto("file:///D:/pdf_export/template/template.html");
    await page.pdf({
        path: 'output.pdf',
        printBackground: true
    });
    await browser.close();
})()
<!DOCTYPE html>
<html>
    <head>
        <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
    </head>

    <body>
        <p style="color: red;">Hello World</p>
    </body>
</html>

当我打开 output.pdf 时,它只显示黑色而不是红色的“Hello world”。

最佳答案

Puppeteer 只是一个驱动 Chrome/Chromium 的库,所以如果在使用它时出现任何问题,我们最好的办法是使用 puppeteer.launch({headless:false}) 打开 Chromium并在那里调试。

<style></style> 中设置您的页面 css标签。

您可以使用以下 CSS 代码解决此问题:

html {
  -webkit-print-color-adjust: exact;
}
p {
  color: #FF0000; 
}

关于node.js - 当我尝试将 PDF 保存在磁盘上时,Puppeteer 不渲染颜色、背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60736354/

相关文章:

node.js - path.join vs path.resolve with __dirname

node.js - 使用 puppeteer(库)进行网页抓取时克服分页

javascript - 如果页面有两个相同的表单,如何访问第二个输入元素?

node.js - puppeteer 在上下文中评估结果被破坏

javascript - Puppeteer:找不到选择器的节点 - iframe 中的登录模式

node.js - Puppeteer:Element.hover() 不存在

node.js - 在等待调用中中断异步函数

node.js - 运行空白 typescript 项目

java - 使用 J2V8 从 java 项目嵌入 node.js 应用程序 - 解析 node.js 中的相对路径

node.js - 暴露不同域上的路由