【问题标题】:XSL-FO : How do I repeat an xsl table for every page?XSL-FO:如何为每一页重复一个 xsl 表?
【发布时间】:2015-12-16 12:18:16
【问题描述】:

我之前已经通过在 xsl-fo 的 AKA 标题部分之前的 region-before 中包含该表来完成此操作。但是,这引入了一个问题,需要动态设置 region-body 的 margin-top,因为 table 的高度不是固定的。

因此,我需要将它包含在 region-body 中。我发现了这方面的问题,但它们只是关于如何重复表格的标题。就我而言,我需要在每一页中重复整个表格。可能吗?如果是这样,我该怎么做?

编辑 顺便说一句,我正在将 FOP 与 Xalan 一起使用

【问题讨论】:

    标签: xml xslt xsl-fo


    【解决方案1】:

    将您要重复的表格放在另一个表格的标题中。该表格将是一个单元格宽并包含所有正文内容。因为表格在标题中,所以它会在正文表格内容流向的每一页上重复。仅当您的正文内容为一列时,这才有效。

    【讨论】:

    【解决方案2】:

    如果您将 Antenna House 或 FOP 与 Saxon 9.5、Xalan 或 DotNet 4.0 XSLT 处理器一起使用,那么您可以使用来自 Print and Page Layout Community Group @ W3C 的 XSLT 扩展在中间运行 FO 处理器您的 XSLT 转换。请参阅http://www.w3.org/community/ppl/wiki/XSLTExtensions中的示例

    您可以制作一个仅用于呈现表格的最小 FO 文档,然后在其上运行扩展函数以获取包含格式化表格的区域树。最后,您将根据格式化表格的高度调整fo:region-body 的边距。

    如果您没有可以运行扩展功能的 XSLT 处理器,但有可以生成区域树输出的 FO 处理器,您可以运行 FO 处理器一次以获取表的区域树,然后运行它让 XSLT 转换使用之前生成的区域树 XML 来计算fo:region-body 的表格高度和边距。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-17
      • 2021-04-24
      • 2011-12-29
      • 1970-01-01
      • 2016-04-14
      • 1970-01-01
      • 2015-06-14
      • 2012-07-28
      相关资源
      最近更新 更多