我想创建一个解析XML的AFP。 因此我确实使用了两张桌子。 (我需要那些表,它是一个账单)
一切运作良好,但我无法弄清楚如何实施以下要求:
所以如果第二个表可以放在与第一个表相同的页面中,我想淡出标题。如果第二个表因为"保持在一起而进入下一页",我想显示标题
所以我确实有第二张桌子,#34;保持在一起"像这样:
<fo:table table-layout="fixed" width="180mm" keep-together.within-page="always">
我现在正在寻找一种方法,以找出在特定情况下如何更改此标题。 XSL-FO甚至可以实现吗? (我想像这样:)
<xsl:if test="$keep-together.within-page !=''">
<fo:table-header>
...
</fo:table-header>
</xsl:if>
但是这不起作用。有人有想法吗?
抱歉我的英语不好。 非常感谢任何帮助!欢呼声
答案 0 :(得分:0)
如果第二个表可以放在与第一个表相同的页面中,我想淡出标题。如果第二个表因为“保持在一起”而进入下一页,我想显示标题
有一些选项可用于修改跨越分页符的单个表的标头。请参阅table-omit-header-at-break和rx:table-omit-initial-header(后者是XEP扩展名)。
但你所要求的是不可能的。表头的显示不能取决于表是否与另一个表位于同一输出页面上。
从XSL-FO创建AFP(或PDF)输出是一个具有两个独立阶段的过程:
你想象这样的事情:
<xsl:if test="$keep-together.within-page !=''">
...
</xsl:if>
这是不可能的。这是试图模糊两个阶段之间的界限。在第1阶段,对第2阶段产生的实际页面一无所知。
在XSL-FO中,您可以为各种突发事件指定规则(keep-with-next
,keep-together
,orphans
,widows
等属性的条件。但是没有办法测试表B是否与表A在同一页面上,或者属性是否已“生效”。它只是不起作用。