mac amd64 wkhtmltopdf

amd64 - wkhtmltopdf repitiendo encabezados de thead superpuestos a contenido



wkhtmltopdf windows (3)

Encontré tr { page-break-inside: avoid; } tr { page-break-inside: avoid; } trabajó hasta cierto punto, pero no cuando mis encabezados abarcaban varias líneas. Como quería mantener mi sección de thead , mi solución fue apagar la repetición.

thead, tfoot { display: table-row-group; }

Estamos incorporando wkhtmltopdf (0.12.1) en una aplicación Java, usando stdin y stdout para entrada / salida. Queremos múltiples (diferentes) encabezados en nuestro PDF, así que en lugar de usar la opción --header-html estamos usando un thead , que se repite en varias páginas. Aquí hay un pequeño ejemplo de HTML:

<!DOCTYPE html> <html> <body> <table style="page-break-after: always;"> <thead> <tr> <th>My first header</th> </tr> </thead> <tbody> <tr> <td>First content</td> </tr> </tbody> </table> <table> <thead> <tr> <th>My second header</th> </tr> </thead> <tbody> <tr> <td>Second content</td> </tr> </tbody> </table> </body> </html>

Hasta ahora tan bueno. Los problemas surgen cuando el contenido abarca varias páginas. El encabezado se muestra sobre el contenido, superponiéndolo. Ejemplo html y PDF . Observe que el segundo encabezado se representa correctamente, ya que tr solo abarca una página.

Otras personas han tenido problemas similares. Hay algunas soluciones para esto cuando estás usando la opción --header-html , como agregar --header-spacing o --margin-top , pero estas opciones no tienen efecto en el repetido thead . ¿Algunas ideas?


Lo resolví con estas tres reglas css:

thead { display: table-header-group; } tfoot { display: table-row-group; } tr { page-break-inside: avoid; }


Usted resuelve este problema agregando el siguiente css.

tr { page-break-inside: avoid; }