Ich habe eine lange Tabelle, die Zeilen auf mehreren Seiten zeigt. Wenn eine Seite endet, wird die Zeile zur Hälfte auf einer Seite und zur Hälfte auf der nächsten Seite gedruckt. Wie kann ich sicherstellen, dass die Zeilen vollständig auf der neuen Seite gedruckt werden?Seitenumbruch für lange Tabelle
5
A
Antwort
8
CSS-Eigenschaft: page-break-inside: avoid;
auf HTML tr
Element tut es.
Getestet mit:
wkhtmltopdf 0.12.3
für Linux (Ubuntu Trusty) 32-bit/64-bit built on Ubuntu 14.04.2
vorgesehen, wie bei bereitgestellt: http://wkhtmltopdf.org/downloads.html#stable
A quick and dirty Test kann wie folgt aussehen:
<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>
1
Ist für mich nicht. Getestet mit wkhtmltopdf 0.12.4 Linux 64 bit. Stil angewendet mit
thead,
tr,
td,
th {
page-break-inside: avoid !important;
}
Reihen weiter in der Mitte zu brechen, und überlappen die thead auf der nächsten Seite.
Danke, das ist auch nützlich, wenn Sie vermeiden müssen, ein div auf 2 Seiten aufzubrechen und das ganze div auf der nächsten Seite zu rendern. – Henry
@Henry tatsächlich nach CSS22 Spezifikation sollte es mit Block-Level-Elemente im Allgemeinen https://www.w3.org/TR/CSS22/page.html#page-breaks arbeiten, aber im Zusammenhang mit dieser Antwort in Bezug auf wkhtmltopdf könnte es es lohnt sich zu testen, es wird von Ihrem Anwendungsfall unterstützt. Würden Sie die wkhtmltopdf-Version bereitstellen, die Sie mit div erfolgreich gemacht haben, wäre sie für andere nützlich. –