首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在XSL FO中修复页面底部的表脚?

如何在XSL FO中修复页面底部的表脚?
EN

Stack Overflow用户
提问于 2015-05-12 06:55:22
回答 1查看 1.9K关注 0票数 2

我正在使用XSL(使用Apache处理)。

表的xsl代码如下所示:

代码语言:javascript
复制
<!-- ... Some xsl fo code with data occupying 1/2 page ... -->
<fo:table>
   <fo:table-header>
      Item Name 
   </fo:table-header>
   <fo:table-footer>
      Total: 
         <xsl:value-of select="total" />
   </fo:table-footer>
   <fo:table-body>
      <fo:table-row>
         <xsl:value-of select="itemName" />
      </fo:table-row> 
   </fo:table-body>
</fo:table>

我希望在每一页的底部都有一个表脚(我尝试使用fo:table-footer)。

我还想在第一个页面后面的页面上添加一个脚注:如果内容需要一个以上的页面,那么我需要在表页脚后面的脚注"Continuation of previous page"

表页脚必须仅在最后一页上显示总价值(我的意思是,如果我有6页的表内容,那么除最后一页之外,每一页都必须有总值为空的页脚和带有值的最后页脚)。

XML来源:

代码语言:javascript
复制
<itemDetail>
   <itemName>Car1</itemName>
   <itemName>Car2</itemName>
   <itemName>Car3</itemName>
   <itemName>Car4</itemName>
   <itemName>Car5</itemName>
   <itemName>Car6</itemName>
   <itemName>Car7</itemName>
   <itemName>Car8</itemName>
   <itemName>Car9</itemName>
   <itemName>Car10</itemName>
   <itemName>Car11</itemName>
   <itemName>Car12</itemName>
   <itemName>Car13</itemName>
   <itemName>Car14</itemName>
   <itemName>Car15</itemName>
   <itemName>Car16</itemName>
   <itemName>Car17</itemName>
   <itemName>Car18</itemName>
   <itemName>Car19</itemName>
   <itemName>Car20</itemName> 
</itemDetail>
<total>20</total>

需要第1页的示例输出:

需要第2页的示例输出:

EN

回答 1

Stack Overflow用户

发布于 2015-05-22 22:14:38

在重读你的问题后,我会这么做的。您应该有页面模板的第一,休息和最后。

这有两个原因-- (1)您希望那些表脚位于底部,(2)许多产品(包括FOP)不支持检索表标记。将标记检索到表行对于格式化程序来说是非常困难的,特别是检索到的内容的大小会导致表重新格式化(就像行不再适合)。

第一个页面模板区域-后将有一个表行与“总计:”在其中空白。

rest页面模板区域后将有一个表行,其中"Total:“为空白,后面为"*延续上一页”。

最后一个页面模板在区域中没有任何内容--在“总计:”之后,只有"*上一页的继续“。

在创建表时,在表中添加包含适当总数的所有其他行之后,在表中添加" total :“行。您可以只在末尾添加(没有这些空白行),或者如果要放入空白行,则将区域--在一行之后的区域--缩小以容纳这一行。不过,我不建议这样做,除非您必须拥有空白行,并且所有表都必须具有相同的高度。你也可以离开在页脚和拉一个标记页脚,而不检索表标记。

唯一要注意的是,是否选择了行大小和页面尺寸,以便放置在区域中的"Total:“行与表的其余部分匹配得很好。

有关页面模板的设置和顺序,请参见How to position a block at the bottom in the region-body。在这种情况下,您可以使用唯一的页面模板在区域中放置任何内容,因为在这种情况下,您不希望使用“*延续”行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30183818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档