【问题标题】:How can I add a watermark to a PDF that is generated by puppeteer?如何在 puppeteer 生成的 PDF 中添加水印?
【发布时间】:2019-10-14 10:18:52
【问题描述】:

我正在使用 puppeteer 为我的报告视图生成 PDF 文件,我想在该报告 PDF 版本上添加水印。反正我能做到吗?

【问题讨论】:

    标签: node.js pdf puppeteer watermark


    【解决方案1】:

    最简单的方法是在页面中添加一个附加元素,该元素表示创建 PDF 时的水印。由于您可以以任何您喜欢的方式更改页面,因此您可以向页面添加“水印”元素,如下所示:

    await page.evaluate(() => {
      const div = document.createElement('div');
      div.innerHTML = 'Watermark Text...';
      div.style.cssText = "position: fixed; bottom: 10px; right: 10px; background: red; z-index: 10000";
      document.body.appendChild(div);
    });
    await page.pdf(/* ... */);
    

    代码在页面的右下角添加了一个固定元素。打印时,它将出现在每个打印页面上。您可以使用任何类型的 CSS 样式来设置水印样式。只需确保它具有较高的 z-index 值,以免与它重叠。

    【讨论】:

    • 我用 Puppeteer 尝试了这个解决方案来制作多页 PDF,但只在最后一页得到了水印。不确定这里出了什么问题或者 page.evaluate() 的预期行为?
    猜你喜欢
    • 2017-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多