web-dev-qa-db-ja.com

wkhtmltopdf page-break-afterが効果がないのはなぜですか?

私は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

しかし、それは改ページを生成しませんでした、私は何か間違っていますか?

39
Awea

Pdfがwkhtmltopdfの以前のバージョンで問題なく生成されたため、おそらく無関係です。いずれにしても、改ページが正しく適用されないという同様の問題がありました。私の問題は、overflow以外のvisibleを持つ改ページ要素の親要素でした。これは私の問題を修正しました:

* {
  overflow: visible !important;
}

もちろん、これが適用されるタグについてより具体的にすることができます;)

39
David Martin

次のように使用してみてください

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

これは動作するはずです。

24
shana

私はusinf wkhtmltopdf 0.12.3.2です

私にとっては、境界線が設定されていて、ブレーカーdivがbodyの直下の子の場合、page-break-afterが機能します。

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

break-break-beforeは機能しません。

-print-media-typeは不要です。

10
bref27

バージョンwkhtmltopdf 0.12.0を使用しています

私にとって、改ページは--print-media-typeでのみ動作します。これがないと、画像の改ページ保護は機能しますが、改ページ後または改ページ前には機能しません。

それを機能させるには、印刷メディア用の特別なcssファイルを作成する必要がありました。

用紙サイズを「A3」に設定しても、「overflow:visible」を使用しても違いはありませんでした。

WKHTMLTOPDF with pdfkit with Railsテーブルの改ページを無視する

メディア印刷を削除した後、正常に動作しています

前:

@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;}
1
Manivasagan