2012-11-14 18 views
1

重置頁碼我有以下XSLT結構:如何在XSLT

<fo:layout-master-set> 
    <fo:simple-page-master master-name="simpleA4" >      
     <fo:region-body/> 
     <fo:region-after extent="0.4cm"/>   
    </fo:simple-page-master>    
</fo:layout-master-set> 

<fo:page-sequence master-reference="simpleA4" > 

    <fo:static-content flow-name="xsl-region-after"> 
     <fo:block font-size="5pt"> 
     Page <fo:page-number /> 
     </fo:block> 
    </fo:static-content> 

    <fo:flow flow-name="xsl-region-body"> 
     <fo:block font-size="8pt"> 
      <!-Loop goes here-> 
     </fo:block> 
    </fo:flow> 

</fo:page-sequence> 

,我需要從1對於再次重啓<fo:page-number />在體內循環。是否可以重置頁碼或任何其他想法?

回答

4

我認爲這是可能的,試試這個

<fo:page-sequence master-reference="simpleA4" initial-page-number="1" force-page-count="no-force"> 

並把fo:page-sequence你循環。

+0

就是這樣。我將頁面內部的內部循環替換爲外部循環。 – Vivek

0

我不確定是否可以直接重置fo:page-number通過xslt,因爲頁碼由FOP分配。當頁面中的頁面中包含未知行的動態內容時,很難找出頁碼。你是否嘗試過<fo:page-number-citation/>

我建議你,如果你確定每一行都有固定行,你可以手動生成行號而不是使用<fo:page-number/>。刪除fo:static-content節點,用於生成頁碼並手動計算頁碼,並將其添加到每頁的末尾。

讓我們假設你的頁面有80行,在身體

for each 1 to totalRows 
    add page header 
    when rowCount%80=0 
    add pageNumber 
+0

我已經做了類似的事情,假設有35個固定的行。問題是,如果任何行單元格包含一個巨大的內容,然後固定的計數將是錯誤的。無論如何,如果XSLT具有重置頁碼的功能,那將是一件好事。 – Vivek

+0

無法訪問stylusstudio那裏可能會得到更好的結果。看到這個線程http://www.oxygenxml.com/archives/xsl-list/200605/msg00425.html msg00436.html可能會得到一些想法。 – vels4j