1

我有以下 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>

<fo:page-number />关于在体内循环,我需要从 1 重新开始。是否可以重置页码或任何替代想法?

4

2 回答 2

5

我觉得可以,试试这个

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

并将fo:page-sequencein you 循环。

于 2012-11-14T16:01:09.080 回答
0

我不确定您是否可以直接通过 xslt 重置 fo:page-number,因为页码是由 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
于 2012-11-14T12:16:57.633 回答