我遵循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 />
,以便在体内循环。是否可以重置页码或任何其他想法?
答案 0 :(得分:5)
我认为这是可能的,试试这个
<fo:page-sequence master-reference="simpleA4" initial-page-number="1" force-page-count="no-force">
并将fo:page-sequence
放入您的循环中。
答案 1 :(得分: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