我一直在为XSL-FO(使用Apache-FOP)样式表应用一些修复来创建PDF,其中包括添加一些额外的行,表示数据何时更改为不同的集合。
我已将行插入正确的位置并显示确定,但不时地,这些“标题行”将出现在页面的底部。因此,为了便于阅读,我在keep-with-next="always"
元素中添加了table-row
,并且在我注意到其他问题之前一切正常。
当我在页面底部没有足够空间的情况下在行中包含keep-with-next="always"
时,下一行会显示在同一页面上,这会导致它隐藏该页面的页脚。然后下一行继续下一页。
所以,我要问的是,是否有一种方法可以拥有一组行,当它们的组合高度大于剩余空间时,它会将整个批次移动到新页面上?我考虑过使用嵌套表,但我被其他人建议避免这样做(出于某种未知原因,但如果这是唯一的解决方案,请点击它们,我正在这样做)
我可以删除这个位,因为它不是宇宙的末端,在页面的底部有一个“标题行”,但是让它正常工作会很好,并且一如既往,它很好学习为什么某些东西不能按你想要的方式工作
答案 0 :(得分:5)
如果您不希望分页显示在与下一行保持的行内,则需要在其子代上设置keep-together.within-page
属性:
<fo:table-row keep-with-next.within-page="always">
<fo:table-cell keep-together.within-page="always">
row with keep-with-next text
...
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
next row
</fo:table-cell>
</fo:table-row>
keep-together
table-cell
row with keep-with-next text
row with keep-with-next text
<!-- page break -->
row with keep-with-next text
row with keep-with-next text
next row
keep-together
table-cell
<!-- page break -->
row with keep-with-next text
row with keep-with-next text
row with keep-with-next text
row with keep-with-next text
next row
答案 1 :(得分:3)
我遇到了同样的问题,这就是我解决它的方法。
<fo:table-row keep-with-next.within-page="always">