wkhtmltopdf重复thead标题重叠内容

时间:2014-07-09 08:05:51

标签: wkhtmltopdf

我们将wkhtmltopdf(0.12.1)嵌入到Java应用程序中,使用stdin和stdout进行输入/输出。我们需要在PDF中使用多个(不同的)标题,因此我们不会使用--header-html选项而是使用thead,而是在多个页面上重复使用<!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的一个小例子:

tr

到目前为止一切顺利。当内容跨越多个页面时出现问题。然后标题显示在内容的顶部,与其重叠。示例htmlPDF。请注意,第二个标题渲染得很好,因为--header-html仅跨越一页。

其他人也遇到过类似的问题。当您使用--header-spacing选项时,例如添加--margin-topthead,有一些解决方法,但这些选项对重复的{{1}}没有影响。有什么想法吗?

3 个答案:

答案 0 :(得分:31)

我用这三个css规则解决了它:

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

答案 1 :(得分:7)

通过添加以下css来解决此问题。

   tr {
         page-break-inside: avoid;
      }

答案 2 :(得分:3)

我发现tr { page-break-inside: avoid; }工作到了一定程度,但当我的标题跨越多行时却没有。由于我想保留thead部分,我的解决方案是关闭重复。

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