我们将wkhtmltopdf(0.12.1)嵌入到Java应用程序中,使用stdin和stdout作为输入/输出.我们希望在我们的PDF中使用多个(不同的)标题,所以我们使用的是–header-html选项,而不是在多个页面上重复使用.这里有一个例子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>
到现在为止还挺好.当内容跨越多个页面时出现问题.标题然后显示在内容的顶部,与之重叠.示例html和PDF.注意,第二个标题渲染很好,因为tr只跨越一个页面.
其他人也有类似的问题.当您使用–header-html选项(例如添加–header-spacing或–margin-top)时,有一些解决方法,但这些选项对重复的该对象没有影响.有任何想法吗?
解决方法
我用这三个CSS规则解决了这个问题:
thead { display: table-header-group; } tfoot { display: table-row-group; } tr { page-break-inside: avoid; }