2016-03-21 10 views
5

私はいくつかのページに行を示す長いテーブルを持っています。ページが終了すると、行は1ページに半分、次のページに半分ずつ印刷されます。新しいページに行が完全に印刷されていることを確認するにはどうすればよいですか?長いテーブルの改ページ

答えて

8

CSSプロパティ:page-break-inside: avoid; on HTML tr要素です。で提供されるLinux (Ubuntu Trusty) 32-bit/64-bit built on Ubuntu 14.04.2のために提供
wkhtmltopdf 0.12.3:でテスト

http://wkhtmltopdf.org/downloads.html#stable

間に合わせのテストは次のようになります。

<tr style="page-break-inside: avoid;"> 
    <!-- A little border to see the result more easily --> 
    <td style="border: solid 1px blue;"> 
    Large text possibly displayed on several pages ... 
    Large text possibly displayed on several pages ... 
    Large text possibly displayed on several pages ... 
    Large text possibly displayed on several pages ... 
    </td> 
    <td>col2</td> 
    <td>col3</td> 
</tr> 

Mozilla Developer Network page-break-inside description

+1

ありがとうございます。これは、divを2ページに分割して、次のページのdiv全体をレンダリングしないようにする必要がある場合にも便利です。 – Henry

+0

@Henry確かにCSS22仕様によれば、ブロックレベルの要素、一般的にはhttps://www.w3.org/TR/CSS22/page.html#page-breaksで動作するはずですが、wkhtmltopdfに関するこの回答の文脈ではそれはあなたのユースケースでサポートされてテストする価値がある。 divを使って成功したwkhtmltopdfバージョンを提供してもらえれば、他の人には便利なはずです。 –

1

は私のために動作しません。 wkhtmltopdf 0.12.4 Linux 64ビットでテスト済み。適用されるスタイル

thead, 
tr, 
td, 
th { 
    page-break-inside: avoid !important; 
} 

行は途中で途切れ続け、次のページでtheadを重複します。