45

我在 Mac 上使用 wkhtmltopdf 0.10.0 rc2

我有一个像这样的html:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <link href="print.css" rel="stylesheet">
    <style type="text/css" media="screen,print">
      .break{
        display: block;
        clear: both;
        page-break-after: always;
        border :1px solid red
      }
      .page-breaker {
      display: block;
      page-break-after: always;
      border :1px solid red
      }
    </style>
  </head>
  <body>
    <div class="container break">
      page 1
    </div>
    <div class="page-breaker"></div>
    <div class="container">
      page 2
    </div>
  </body>
</html>

我只是尝试:

wkhtmltopdf test.html test.pdf

但它没有产生分页符,我做错了什么?

4

6 回答 6

46

可能不相关,因为您的 pdf 使用早期版本的 wkhtmltopdf 生成正常。无论哪种方式,我都遇到了类似的问题,即没有正确应用分页符。overflow我的问题是分页元素的父元素具有visible. 这解决了我的问题:

* {
  overflow: visible !important;
}

当然,您可以更具体地了解适用于的标签;)

于 2014-02-05T10:04:33.290 回答
31

尝试使用如下

 <div style="page-break-before:always;">
   //your content
</div>

这应该有效。

于 2015-06-08T17:06:31.153 回答
15

我用的是 wkhtmltopdf 0.12.3.2

对我来说,page-break-after 在设置边框时起作用,并且当断路器 div 是body 的直接子级时

.page-breaker {
    clear: both;
    display: block;
    border :1px solid transparent;
    page-break-after: always;
}

break-break-before不起作用。

--print-media-type不需要。

于 2016-09-16T08:02:38.047 回答
4

我正在使用版本 wkhtmltopdf 0.12.0

对我来说,分页符仅适用于 --print-media-type。没有它,图像的分页保护可以工作,但不能在分页之后或之前。

我必须为印刷媒体制作一个特殊的 css 文件才能让它工作。

将纸张尺寸设置为“A3”或使用“溢出:可见”没有任何区别。

另请参阅在 Rails 上使用 pdfkit 忽略表格分页符的 WKHTMLTOPDF

于 2015-02-21T18:45:00.417 回答
1

删除媒体打印后工作正常

前:

@media print {
    .page-break { height:0;page-break-after: always; margin:0; border-top:none;}
}

上面的代码在新版本中不起作用。

现在

.page-break { height:0;page-break-after: always; margin:0; border-top:none;}
于 2018-01-02T11:38:46.323 回答
1

将 wkhtmltopdf 更新到版本 0.12.5。更新后我没有出现分页问题。

用于--disable-smart-shrinking避免空白(如果有的话)

用于--zoom <value>避免页面页面(如果整个页面未显示)

于 2019-12-13T12:31:08.840 回答