我有xsl:for-each
递归添加fo:table
个元素。在xsl:for-each
之前我有一个“标题”块。
我想知道的是,如果我可以确定该表是否溢出到另一页并允许我再次“注入”标题块。这样我就可以表明上一张表已经继续了。
-> Page 1
--> The Title
---> Table
-> Page 2
--> The Title (cont.)
---> Remaining Table
更新
考虑Mathias Müller的建议并尝试使用fo:table-header
FOP 2.1支持fo:retrieve-table-marker
,这应该允许“续”标题。但是,延续似乎不起作用,现在身体与标题重叠。
<xsl:for-each select="results/group">
<fo:block>
<fo:table table-layout="fixed" width="100%">
<fo:table-column column-width="1.8in"/>
<fo:table-column />
<fo:table-column />
<fo:table-column />
<fo:table-column />
<fo:table-column />
<fo:table-column />
<fo:table-header>
<fo:table-row background-color="cmyk(0.72, 0.17, 0.03, 0.04)" color="#FFFFFF" font-size="15pt">
<fo:table-cell number-columns-spanned="7">
<fo:block padding="1mm" text-indent="0.3em">
<xsl:value-of select="$title" />
</fo:block>
</fo:table-cell>
</fo:table-row>
<xsl:call-template name="result_table_header" />
</fo:table-header>
<fo:table-body>
<fo:table-row font-size="9pt">
<fo:table-cell number-columns-spanned="7">
<fo:block>
<fo:table table-layout="fixed" width="100%" border-collapse="separate">
<fo:table-column column-width="1.8in" />
<fo:table-column />
<fo:table-column />
<fo:table-column />
<fo:table-column />
<fo:table-column />
<fo:table-column />
<fo:table-body>
<xsl:for-each select="result">
<xsl:call-template name="result_row" />
</xsl:for-each>
</fo:table-body>
</fo:table>
</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:block>
</xsl:for-each>
更新#2
我修复了重叠,但我不得不取出fo:marker
。它没有添加“(续)”。
答案 0 :(得分:-1)
这些适用于AH Formatter V6.3。
标题中有'假标题':
<fo:table table-layout="auto" width="100%">
<fo:table-column column-width="1.8in" />
<fo:table-column />
<fo:table-column />
<fo:table-column />
<fo:table-column />
<fo:table-column />
<fo:table-column />
<fo:table-header>
<fo:table-row background-color="cmyk(0.72, 0.17, 0.03, 0.04)" color="#FFFFFF" font-size="15pt">
<fo:table-cell number-columns-spanned="7" padding-bottom="6pt">
<fo:block padding="1mm" text-indent="0.3em">
<fo:retrieve-table-marker retrieve-class-name="header-continued" retrieve-boundary-within-table="table" />
</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell><fo:block>h</fo:block></fo:table-cell>
<fo:table-cell><fo:block>The real table header</fo:block></fo:table-cell>
<fo:table-cell />
<fo:table-cell />
<fo:table-cell />
<fo:table-cell />
<fo:table-cell />
</fo:table-row>
</fo:table-header>
<fo:table-body>
<fo:table-row>
<fo:table-cell number-columns-spanned="7"><fo:marker marker-class-name="header-continued">Title</fo:marker></fo:table-cell>
</fo:table-row>
<fo:table-row font-size="9pt">
<fo:marker marker-class-name="header-continued">Title (Cont)</fo:marker>
<fo:table-cell><fo:block>Lorem ipsum...</fo:block></fo:table-cell>
<fo:table-cell />
<fo:table-cell />
<fo:table-cell />
<fo:table-cell />
<fo:table-cell />
<fo:table-cell />
</fo:table-row>
</fo:table-body>
</fo:table>
和'嵌套表'技术(正如你所尝试的那样):
<fo:table table-layout="auto" width="100%" break-before="page">
<fo:table-header>
<fo:table-row background-color="cmyk(0.72, 0.17, 0.03, 0.04)" color="#FFFFFF" font-size="15pt">
<fo:table-cell number-columns-spanned="7" padding-bottom="6pt">
<fo:block padding="1mm" text-indent="0.3em">
<fo:retrieve-table-marker retrieve-class-name="header-continued"
retrieve-boundary-within-table="table"/>
</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-header>
<fo:table-body>
<fo:table-row>
<fo:table-cell number-columns-spanned="7"><fo:marker marker-class-name="header-continued">Title</fo:marker></fo:table-cell>
</fo:table-row>
<fo:table-row font-size="9pt">
<fo:table-cell>
<fo:marker marker-class-name="header-continued">Title (Cont)</fo:marker>
<fo:table table-layout="fixed" width="100%" border-collapse="separate">
<fo:table-header>
<fo:table-row>
<fo:table-cell><fo:block>h</fo:block></fo:table-cell>
<fo:table-cell><fo:block>The real table header</fo:block></fo:table-cell>
<fo:table-cell />
<fo:table-cell />
<fo:table-cell />
<fo:table-cell />
<fo:table-cell />
</fo:table-row>
</fo:table-header>
<fo:table-body>
<fo:table-row>
<fo:table-cell><fo:block>Lorem ipsum...</fo:block></fo:table-cell>
<fo:table-cell></fo:table-cell>
<fo:table-cell></fo:table-cell>
<fo:table-cell></fo:table-cell>
<fo:table-cell></fo:table-cell>
<fo:table-cell></fo:table-cell>
<fo:table-cell></fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>