如何在HTML中插入分页符,以便wkhtmltopdf解析它?

len*_*ord 44 html pdf page-break wkhtmltopdf

所以基本上我使用wkhtmltopdf将动态HTML报告转换为PDF.

报告有一个特定的格式,我被要求用HTML克隆该格式.

我面临的问题是我无法在html中模拟100%的功能分页符,因此wkhtmltopdf可以解释它并将内容发送到另一个页面.

我正试图避免页面大小测量方法等.

TIA提供任何帮助.

编辑:到目前为止,我正在模仿分页使用<br>,它的工作原理.我仍然需要做一些测试.

Ger*_*son 59

指定特定于打印介质类型的CSS规则.有许多属性可用于分页.我发现将page-break-before属性附加到类是最容易的,如下所示.

在HTML中:

<p>Page 1, paragraph 1</p>
<p class="new-page">Page 2, paragraph 1</p>
<p>Page 2, paragraph 2</p>
Run Code Online (Sandbox Code Playgroud)

在CSS中:

@media print {
  .new-page {
    page-break-before: always;
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 你可能还需要为它指定`--print-media-type`参数来服从`@media print`. (12认同)
  • 我在使用服务器端渲染时删除了@media print {`。 (5认同)
  • 虽然我已经解决了这个问题,就像一只猴子一样,在我喜欢它之前尝试,这对于我一直要求的东西来说是一种非常有用的方法,我非常感激. (4认同)

Jua*_*dán 49

当我使用时wkhtmltopdf,我使用以下类:

.keep-together {
    page-break-inside: avoid;
}

.break-before {
    page-break-before: always;
}

.break-after {
    page-break-after: always;
}
Run Code Online (Sandbox Code Playgroud)

所以我可以强制:

  • 特定的容器内容不会分布在两个页面上(如果它适合一页).使用keep-together该类时,如果需要,将在容器之前创建分页符.
  • 在特定容器之前强制分页.
  • 在特定容器之后强制分页.

@media print对我没用wkhtmltopdf.

  • 这对我来说仍然不起作用,但事实证明是因为我在“html”和“body”标签上设置了“overflow-x:hidden”。请参阅[此处](/sf/answers/676952041/)。 (3认同)
  • @media print对我也不起作用。谢谢,这有所帮助。 (2认同)

小智 6

<div style = "display:block; clear:both; page-break-after:always;"></div>
Run Code Online (Sandbox Code Playgroud)

只需在您的html代码中添加