现在我使用 xhtmlrenderer 将html转换为PDF。 我的maven依赖如下:
<dependency>
<groupId>org.mvel</groupId>
<artifactId>mvel2</artifactId>
<version>2.1.0.drools2</version>
<scope>compile</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.xhtmlrenderer</groupId>
<artifactId>core-renderer</artifactId>
<version>R8</version>
<scope>compile</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>2.0.8</version>
<scope>compile</scope>
<optional>true</optional>
</dependency>
我试图在每个PDF页面重复表头。所以我使用css
:
table {
-fs-table-paginate: paginate;
}
。CSS的解释是here。
-fs-table-paginate
与值(-fs-table-paginate)paginate一起使用时,修改表格布局 算法在后续页面上重复表格页眉和页脚 改善跨越页面的单元格的外观(例如 通过关闭和重新开放边界),但就是这样。如果一个 桌子的最小宽度比页面宽,它会被切断。
当添加上面的css时,我的表的边框被分离。
所以我认为table { -fs-table-paginate: paginate;
使我的表border-collapse:collapse
无效。
那么我该如何解决这个问题,让桌子的边框崩溃?
我的应用CSS表格如下
table{
border:1px solid #000000;
border-collapse:collapse;
-fs-table-paginate: paginate;}
table td{
border:1px solid #000000;
word-wrap:break-word;
white-space:normal;
overflow:hidden;
text-align:left;
line-height:16px;
height:16px;
}
table tr{
page-break-inside:avoid;
}
table thead tr th{
background:#f2f2f2;
border:1px solid #000000;
text-align:center;
}
table tr th{
background:#f2f2f2;
border:1px solid #000000;
text-align:center;
}
当有时候添加-fs-table-paginate: paginate;
时,表格标题将不正常。标题将无法正确显示。在表格标题下面会增加额外的空白行。具体如下:
任何人都知道这些想法吗?
答案 0 :(得分:12)
对于同样的问题,我使用了这种解决方法:
table {
-fs-table-paginate: paginate;
border-spacing: 0;
}
它对我有用,我的thead
会在每页上重复。
答案 1 :(得分:2)
是的......你是对的......
border-collapse:collapse和-fs-table-paginate:paginate不能使用 一起。当-fs-table-paginate设置为时,border-collapse将重置为单独的 分页...
因此,实现表头的更好方法是使用thead ... this may help u ...
答案 2 :(得分:1)
对我有用的解决方法:
将所有th
和td
逐个初始化,边框设置为0px:border: 0px;
然后在你需要的地方应用边框:
<td style="border: 0px; border-left: 1px solid #ddd;">some texte</td>
当然,我以-fs-table-paginate: paginate;
表格式。
工作示例html:https://gist.github.com/laguiz/5509461
结果如下: