XSL-FO :如何为每个页面重复一个 xsl table?
XSL-FO : How do I repeat an xsl table for every page?
我之前通过将 table 包含在 region-before 也就是 xsl-fo 的 header 部分来完成此操作。但是,这引入了一个问题,需要动态设置region-body的margin-top,因为table的高度不固定。
因此,我需要将其包含在 region-body 中。我发现了这方面的问题,但它们只是关于如何重复 table 的 headers。就我而言,我需要在每一页中重复整个 table。是否可以?如果是这样,我该怎么做?
编辑
顺便说一句,我将 FOP 与 Xalan
一起使用
如果您将 Antenna House 或 FOP 与 Saxon 9.5、Xalan 或 DotNet 4.0 XSLT 处理器一起使用,那么您可以使用打印和页面布局社区组 @ W3C 中的 XSLT 扩展 运行 XSLT 转换中间的 FO 处理器。请参阅 http://www.w3.org/community/ppl/wiki/XSLTExtensions
中的示例
您可以制作一个最小的 FO 文档来仅渲染 table,然后 运行 扩展函数对其进行处理以获得包含格式化 table 的区域树。最后,您将根据格式化的 table.
的高度调整 fo:region-body
的边距
如果您没有可以 运行 扩展功能的 XSLT 处理器但是有一个可以生成区域树输出的 FO 处理器,您可以 运行 一次 FO 处理器来获得table 的区域树,然后 运行 它是真实的,并让 XSLT 转换使用先前生成的区域树 XML 计算出 table 的高度和边距fo:region-body
.
将您要重复的 table 放在另一个 table 的 header 中。 table 将是一个单元格宽度并包含所有 body 内容。因为 table 在 header 中,它会在 body table 内容流向的每个页面上重复。仅当您具有作为一列的 body 的内容时,这才有效。
我之前通过将 table 包含在 region-before 也就是 xsl-fo 的 header 部分来完成此操作。但是,这引入了一个问题,需要动态设置region-body的margin-top,因为table的高度不固定。
因此,我需要将其包含在 region-body 中。我发现了这方面的问题,但它们只是关于如何重复 table 的 headers。就我而言,我需要在每一页中重复整个 table。是否可以?如果是这样,我该怎么做?
编辑 顺便说一句,我将 FOP 与 Xalan
一起使用如果您将 Antenna House 或 FOP 与 Saxon 9.5、Xalan 或 DotNet 4.0 XSLT 处理器一起使用,那么您可以使用打印和页面布局社区组 @ W3C 中的 XSLT 扩展 运行 XSLT 转换中间的 FO 处理器。请参阅 http://www.w3.org/community/ppl/wiki/XSLTExtensions
中的示例您可以制作一个最小的 FO 文档来仅渲染 table,然后 运行 扩展函数对其进行处理以获得包含格式化 table 的区域树。最后,您将根据格式化的 table.
的高度调整fo:region-body
的边距
如果您没有可以 运行 扩展功能的 XSLT 处理器但是有一个可以生成区域树输出的 FO 处理器,您可以 运行 一次 FO 处理器来获得table 的区域树,然后 运行 它是真实的,并让 XSLT 转换使用先前生成的区域树 XML 计算出 table 的高度和边距fo:region-body
.
将您要重复的 table 放在另一个 table 的 header 中。 table 将是一个单元格宽度并包含所有 body 内容。因为 table 在 header 中,它会在 body table 内容流向的每个页面上重复。仅当您具有作为一列的 body 的内容时,这才有效。