1
我找不到防止RTF輸出中的表內分頁符的方法。XSL-FO 2.0:防止表內的分頁符
我試過很多keep-together
/keep-with-next
的組合,但沒有爲我工作。實際版本的父級fo:block
的屬性keep-together.within-page="always"
包括整個表格。
只有在生成RTF時纔會出現此問題。 PDF是正確的,並且表格中沒有分頁符存在。該表有一個標題行和3個數據行。在RTF中,在標題行和前兩個數據行之後有一個分頁符。在下一頁上重複標題並生成最後一個數據行。
這些表格不包含分頁符是非常重要的。
下面是相關XSLT樣式表的代碼:
<fo:block keep-together.within-page="always" >
<xsl:for-each select="block">
<xsl:call-template name="drawData"></xsl:call-template>
</xsl:for-each>
<fo:table text-align="center">
<xsl:for-each select="row[@type='declare'][1]/column">
<fo:table-column column-number="position()" border-style="solid" border-color="#000000" border-width="0.5pt">
<xsl:attribute name="column-width"><xsl:value-of select="@width"/></xsl:attribute>
</fo:table-column>
</xsl:for-each>
<xsl:if test="row[@type='header']">
<fo:table-header>
<fo:table-row keep-together.within-page="2" background-color="#0000FF" color="#FFFFFF">
<xsl:for-each select="row[@type='header'][1]/column/block">
<fo:table-cell border-style="solid" border-color="#000000" border-width="0.5pt">
<xsl:attribute name="number-columns-spanned">
<xsl:value-of select="count(../../../row[@type='declare']/column) div count(../../../row[@type='declare'])"/>
</xsl:attribute>
<xsl:call-template name="drawData"></xsl:call-template>
</fo:table-cell>
</xsl:for-each>
</fo:table-row>
</fo:table-header>
</xsl:if>
<fo:table-body>
<xsl:for-each select="row[not(@type='header')]">
<fo:table-row keep-together.within-page="2">
<xsl:for-each select="column/block">
<fo:table-cell border-style="solid" border-color="#000000" border-width="0.5pt">
<xsl:call-template name="drawData"></xsl:call-template>
</fo:table-cell>
</xsl:for-each>
</fo:table-row>
</xsl:for-each>
</fo:table-body>
</fo:table>
</fo:block>
相關表格的屏幕截圖:
沒有真正的「XSL-FO 2.0」這樣的東西。你的意思是你使用Apache FOP 2.0嗎? – mzjn