我们将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
到目前为止一切顺利。当内容跨越多个页面时出现问题。然后标题显示在内容的顶部,与其重叠。示例html和PDF。请注意,第二个标题渲染得很好,因为--header-html
仅跨越一页。
其他人也遇到过类似的问题。当您使用--header-spacing
选项时,例如添加--margin-top
或thead
,有一些解决方法,但这些选项对重复的{{1}}没有影响。有什么想法吗?
答案 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;
}