Why doesn't wkhtmltopdf page-break-after have any effect?

别说谁变了你拦得住时间么 提交于 2019-12-03 02:36:49

问题


I'm using wkhtmltopdf 0.10.0 rc2 for Mac

I have an html like this one :

<!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>

I simply try :

wkhtmltopdf test.html test.pdf

But it didn't produce a page-break, I doing something wrong ?


回答1:


Possibly unrelated as your pdf generated ok with an earlier version of wkhtmltopdf. Either way, I had similar issues with page breaks not being applied correctly. My problem was parent elements of the page-breaked element having an overflow other than visible. This fixed my issue:

* {
  overflow: visible !important;
}

Of course, you can be more specific about the tags this applies to ;)




回答2:


try using as follows

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

this should work.




回答3:


I am usinf wkhtmltopdf 0.12.3.2

For me page-break-after works when a border is set, and when the breaker div is an immediate child of body.

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

break-break-before does not work.

--print-media-type not needed.




回答4:


I am using version wkhtmltopdf 0.12.0

For me, page breaks ONLY work with --print-media-type. Without it, page break protection for images works, but not page-break-after or before.

I had to make a special css file for print media to get it work.

Setting the paper size to 'A3' or using the 'overflow: visible' didn't make any difference.

Also see WKHTMLTOPDF with pdfkit on Rails ignoring table page breaks




回答5:


It is working fine after remove media print

Before:

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

above code not working in new version.

Now

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


来源:https://stackoverflow.com/questions/13692174/why-doesnt-wkhtmltopdf-page-break-after-have-any-effect

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!