为什么wkhtmltopdf page-break-after没有任何影响?

时间:2012-12-03 21:38:12

标签: wkhtmltopdf

我正在使用wkhtmltopdf 0.10.0 rc2 for Mac

我有一个像这样的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

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

6 个答案:

答案 0 :(得分:39)

可能与您使用早期版本的wkhtmltopdf生成的pdf无关。无论哪种方式,我都有类似的问题,没有正确应用分页符。我的问题是分页元素的父元素除了overflow之外还有visible。 这解决了我的问题:

* {
  overflow: visible !important;
}

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

答案 1 :(得分:24)

尝试使用如下

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

这应该有效。

答案 2 :(得分:9)

我是使用wkhtmltopdf 0.12.3.2

对于我来说,如果设置了边框,并且断路器div是身体的直接子女,则分页后工作正常。

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

break-break-before 不起作用。

- 不需要打印媒体类型

答案 3 :(得分:3)

我使用的是版本wkhtmltopdf 0.12.0

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

我必须为打印介质制作一个特殊的css文件才能使其正常工作。

将纸张尺寸设置为&#39; A3&#39;或者使用&溢出:可见&#39;并没有任何区别。

另见WKHTMLTOPDF with pdfkit on Rails ignoring table page breaks

答案 4 :(得分: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;}

答案 5 :(得分:0)

将wkhtmltopdf更新为版本0.12.5。更新后对我而言不会出现分页符问题。

使用--disable-smart-shrinking避免空白(如果有)

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