2016-03-21 11 views
5

Mam długi stół, który pokazuje rzędy na kilku stronach. Po zakończeniu strony wiersz jest drukowany w połowie na jednej stronie, a połowa na następnej stronie. Jak mogę się upewnić, że wiersze zostaną wydrukowane całkowicie na nowej stronie?Podział strony dla długiego stołu

Odpowiedz

8

Właściwość CSS: page-break-inside: avoid; na HTML tr element to robi.

Testowane z:
wkhtmltopdf 0.12.3 przewidzianej Linux (Ubuntu Trusty) 32-bit/64-bit built on Ubuntu 14.04.2 jak przewidziano w: http://wkhtmltopdf.org/downloads.html#stable

Szybki i brudny test może wyglądać następująco:

<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

Dziękuję, jest to również przydatne, jeśli chcesz uniknąć dzielenia elementu div na 2 strony i renderowania całego elementu div na następnej stronie. – Henry

+0

@ Rzeczywiście zgodnie ze specyfikacją CSS22 powinna działać z elementami blokowymi ogólnie https://www.w3.org/TR/CSS22/page.html#page-breaks, ale w kontekście tej odpowiedzi dotyczącej wkhtmltopdf może to warto go przetestować, jest obsługiwany przez twój przypadek użycia. Czy podasz wersję wkhtmltopdf, która odniosła sukces z div, byłaby przydatna dla innych. –

1

Nie działa dla mnie. Testowane za pomocą wkhtmltopdf 0.12.4 Linux 64 bit. Styl zastosowany z ciągiem

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

Wiersze nadal dzielą się na środku i nakładają się na te z następnej strony.

Powiązane problemy