2016-06-08 44 views
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> 

相關表格的屏幕截圖:Document View

+1

沒有真正的「XSL-FO 2.0」這樣的東西。你的意思是你使用Apache FOP 2.0嗎? – mzjn

回答

1

目前(FOP version 2.1),RTF格式輸出有一些限制相比PDF輸出;特別是它不支持保留屬性

所鏈接的頁面指出

RTF輸出是目前無人維護

保持

由RTF庫支持,但不是紮成的RTFHandler

所以,雖然這個功能很可能不會在未來的版本中得到修復,但它不需要外部幫助,它可以相對容易地實現它(在這種情況下,這對submit a patch來說是個好主意)。