javascript - 在 puppeteer 的所有页面上渲染标题

标签 javascript node.js puppeteer

当我将 displayHeaderFooter 设置为 true 时,标题将不会呈现。仅当我在 CSS 中将边距设置为 @page 时它才有效,但随后页面高度增加了边距值并且页面内容呈现在页面外部。

有没有解决办法让标题出现在每个页面都没有bug?

最佳答案

您可以使用 page.pdfmargin 选项设置内容的边距.默认情况下,所有边的边距都是 0,因此如果您设置没有边距的页眉,它将隐藏在页面内容后面。

您通过此选项设置的边距不会增加页面的高度。如果可能,我建议不要使用 CSS 中的 @page 规则,因为存在多个已知错误(有关更多信息,请参见 this answer)。

代码示例

这是一个最小的例子,它为所有页面设置一个标题并将边距设置为 20mm 以使其可见:

await page.pdf({
    displayHeaderFooter: true,
    headerTemplate: '<div style="font-size:5mm;">Your header text</div>',
    margin: {
        top: '20mm'
    },
    path: 'example.pdf'
});

关于javascript - 在 puppeteer 的所有页面上渲染标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55535176/

相关文章:

javascript - jQuery:如何根据数值隐藏div?

node.js - 一个单元如何使用 Express 测试路由?

asynchronous - Puppeteer - 等待元素具有一定的值(value)

node.js - 如何从 puppeteer 中抓取 JSON?

javascript - 如何让点击操作等待输入框填满值?

javascript - 悬停时更改框颜色

javascript - 如何从 FireFox 扩展中的错误获取堆栈跟踪?

javascript - 什么是成熟的 promise

javascript - 如何在Bootstrap中设置默认选项卡

javascript - 使用 API 注册创建 Node.js API 框架