在将HTML转换/打印为PDF时,每一页都有内容页边距,但不是背景页



我正在开发一个网站,该网站需要将网页内容导出为pdf,但必须遵守以下条件:

  • 背景必须完全打印在每一页上
  • 内容不得与背景重叠

由于该网站使用PHP,我尝试使用mPDF,这是我之前在另一个具有相同条件的PHP网站上使用的。mPDF在pdf文件的每一页上都显示了完整的背景,即使页面没有完全填充内容,我也可以设置影响内容的边距,但不能设置仍然覆盖整个页面的背景。

遗憾的是,mPDF无法与这个新网站合作,很可能是因为它使用了引导和灵活布局(它给我返回了一个大约有一千页的pdf,大部分是空白的,其他的都是放大的页面(,最重要的是,在向用户展示之前,javascript会更改部分内容,而mPDF没有考虑到这一点(我注意到这是在我删除bootstrap.css时,它允许我看到转换的结果(。

所以我转向了木偶师https://github.com/puppeteer/puppeteer它在引擎盖下使用铬打印内容很好,但我遇到了一些问题。第一个问题是我不能在每一页上打印完整的背景,但在写这个问题时,我通过在100%创建一个具有position: fixedwidthheight的div来解决这个问题,该div用作背景

第二个问题是,当我在puppeteer中设置边距时(最终与在chrome中打印边距相同(,它们也会影响背景(即使在创建固定div之前,这也是一个问题(,所以我找不到让文本不与背景重叠的方法

在这里您可以看到一个示例:https://stackblitz.com/edit/web-platform-vlfqfz?file=index.html

如果你在另一个选项卡中打开预览并尝试打印它,你可以看到我面临的问题

所以,显然不可能按照我在这个问题中所问的去做,所以我找到了另一个解决方案
我剪切了背景的顶部和底部,并将它们用作木偶师页眉和页脚中的图像。花了一段时间才使图像与用作背景的position: fixeddiv一致(现在只包含背景的侧面(,但在机身上设置固定宽度完成了的工作

最新更新