我已经尝试了以下建议但没有一个有效,我的<fo:block>
不断分开两个内部块。
<fo:block keep-with-next="always" page-break-inside="avoid">
<fo:block keep-together="always">
Block # 1, a header
</fo:block>
<fo:block keep-together="always">
Block # 2, a bunch of text
</fo:block>
</fo:block>
如何将两个内部块保持在页面上?我正在使用FO.NET,以防有限制。
答案 0 :(得分:0)
我认为你应该联系FO.NET人员。使用RenderX XEP和Apache FOP测试此示例可产生3页输出。在10.36,你的块的整个文本适合页面,在10.37,它没有。在这两种产品中,块中的所有内容都将移至下一页。请注意,唯一需要的标签是page-break-inside =“avoid”,没有别的。
<fo:flow flow-name="xsl-region-body">
<fo:block>Space</fo:block>
<fo:block space-before="10.36in">I Generate One Page</fo:block>
<fo:block page-break-inside="avoid">
<fo:block >
Block # 1, a header
</fo:block>
<fo:block>
Block # 2, a bunch of text
</fo:block>
</fo:block>
<fo:block break-before="page">I Generate Two Pages</fo:block>
<fo:block space-before="10.37in">Space</fo:block>
<fo:block page-break-inside="avoid">
<fo:block >
Block # 1, a header
</fo:block>
<fo:block>
Block # 2, a bunch of text
</fo:block>
</fo:block>
</fo:flow>
在查看FO.NET网站时,它自2009年以来一直没有更新。我没有看到他们(缺乏)对keep的支持,但来自另一个XSL FO供应商,保持很难正确地做在代码中。