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

问题描述 投票:38回答:5

我正在使用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

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

wkhtmltopdf
5个回答
39
投票

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

* {
  overflow: visible !important;
}

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


24
投票

尝试使用如下

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

这应该工作。


9
投票

我是使用wkhtmltopdf 0.12.3.2

对于我来说,当设置边框时,以及当断路器div是身体的直接子节点时,页面中断后工作。

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

break-break-before不起作用。

- 不需要--print-media-type。


3
投票

我使用的是版本wkhtmltopdf 0.12.0

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

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

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

另见WKHTMLTOPDF with pdfkit on Rails ignoring table page breaks


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;}
© www.soinside.com 2019 - 2024. All rights reserved.