2016-02-04 62 views
0

我有一個xsl:for-each遞歸地添加fo:table元素。之前xsl:for-each我有一個「標題」塊。如何確定頁面是否通過XSL-FO溢出到附加頁面?

我想知道的是,如果我可以確定表是否溢出到另一個頁面,並允許我再次「注入」標題欄。通過這種方式,我可以指出前面的表格還在繼續。

-> Page 1 
--> The Title 
---> Table 
-> Page 2 
--> The Title (cont.) 
---> Remaining Table 

UPDATE

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

看一看在http:// stackoverflow.com/questions/13922082/how-to-make-xsl-fo-table-caption-repeat-on-each-page-when-the-table-spans-multip –

+1

究竟是什麼標題塊,即在哪FO元素是什麼?你可以把它放在'fo:table-header'中嗎? –

+0

標題只是一個包含標題的「fo:block」。是的,類似於表頭。 –

回答

-1

這些工作與AH格式化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> 
相關問題