【问题标题】:XSL keep-together and page-break-inside not workingXSL keep-together 和 page-break-inside 不起作用
【发布时间】:2015-06-12 19:50:23
【问题描述】:

我尝试了以下建议,但都没有奏效,我的<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,以防有限制。

【问题讨论】:

  • 我没有 FO.NET,但经过 RenderX XEP 和 Apache FOP 测试,也没有这个问题。两者都将您的整个块放在一个页面上,没有任何拆分。
  • 如果有限制:FO.NET 基于 FOP 0.20.4 版。这是古老的。根据this page,它只支持keep-together表行,cs.helsinki.fi/group/xmltools/formatters/fop/fop-0.20.5/build/…
  • 感谢您的帮助。不幸的是,我们被困在使用 FONet 上。所以我只需要将我的块转换为表格,这应该不是问题。谢谢!
  • @mzjn 如果您想提交答案,我会将其标记为答案,谢谢!

标签: xml xslt xsl-fo page-break page-break-inside


【解决方案1】:

我认为您应该联系 FO.NET 人员。使用 RenderX XEP 和 Apache FOP 测试此示例会产生 3 页输出。在 10.36in 处,您的块的整个文本适合页面,在 10.37in 不适合。在这两种产品中,您的块中的所有内容都将移至下一页。请注意,唯一需要的标签是 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 供应商的内容,keep 很难正确执行在代码中。

【讨论】:

    猜你喜欢
    • 2011-10-23
    • 2011-12-04
    • 2017-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-22
    • 1970-01-01
    • 2013-12-30
    相关资源
    最近更新 更多