找到“keep-together”属性,并且需要不在一行内分页时,我在xslt中的每个table-row元素上添加了keep-together="always"
。
有没有更好的方法来达到同样的效果?看起来有点hacky。
(ps。如果没有人提供更好的答案,我会接受“否”作为答案,前提是提供了某种解释。)
答案 0 :(得分:15)
keep-together="always"
很危险,因为这是一个复合属性,也间接设置keep-together.within-line="always"
(禁止在表格单元格内换行)。您应该使用keep-together.within-column="always"
代替。但是在表行上指定它实际上是要走的路。没什么好看的。
答案 1 :(得分:1)
当我需要将表锁定在一起时,这个答案解决了我在分页符中流过的表行的问题。我使用了<fo:table keep-together="always"></fo:table>
感谢。
答案 2 :(得分:1)
我使用以下三种方法将表行保持在一起并取得了一些成功:
<tr keep-together.within-page="always">
...
</tr>
<tr keep-with-next.within-page="always">
<td keep-together.within-page="always">...</td>
...
</tr>
<tr>...</tr>
<tr>...</tr>
<tr keep-with-previous.within-page="always">
<td keep-together.within-page="always">...</td>
...
</tr>
虽然您必须小心 - 如果行或单元格跨越生成文档的多个页面,您将从底部松开该页面的底部!
答案 3 :(得分:1)
使用处理整数保持的XSL格式化程序,您可以使用整数值,以便格式化程序将尝试将行保持在一起,但会破坏行而不是在页面末尾运行。但是,此问题已标记为FOP,FOP的合规性页面目前声明它对整数保留(http://xmlgraphics.apache.org/fop/compliance.html#fo-property-keep-together)的支持有限,因此YMMV。