我有一个包含多个子文档的文档。以下是子文档的外观:
1 页
2-n 页
然后是具有相同结构的下一个子文档:
1 页
2-m 页
正如我所说,这些子文档组合在一个 .pdf 文件中。
这是我的 xsl-fo 模板:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output method="xml" indent="yes" />
<xsl:template match="/">
<fo:root font-size="11pt" font-family="serif">
<fo:layout-master-set>
<fo:simple-page-master master-name="A4-portrait"
page-height="29.7cm" page-width="21.0cm" margin-top="1cm"
margin-left="1.5cm" margin-right="1cm" margin-bottom="1cm">
<fo:region-body />
<fo:region-after region-name="footer" extent="15mm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<!-- first sub-document -->
<fo:page-sequence master-reference="A4-portrait" initial-page-number="1">
...........
<fo:block text-align="center">
Page <fo:page-number/>/<fo:page-number-citation-last ref-id="end"/>
</fo:block>
...........
</fo:page-sequence>
<fo:page-sequence master-reference="A4-portrait" id="end">
...........
<fo:block text-align="center">
Page <fo:page-number/>/<fo:page-number-citation-last ref-id="end"/>
</fo:block>
...........
</fo:page-sequence>
<!-- second sub-document -->
<fo:page-sequence master-reference="A4-portrait" initial-page-number="1">
...........
<fo:block text-align="center">
Page <fo:page-number/>/<fo:page-number-citation-last ref-id="end"/>
</fo:block>
...........
</fo:page-sequence>
<fo:page-sequence master-reference="A4-portrait" id="end">
...........
<fo:block text-align="center">
Page <fo:page-number/>/<fo:page-number-citation-last ref-id="end"/>
</fo:block>
...........
</fo:page-sequence>
</fo:root>
</xsl:template>
</xsl:stylesheet>
所以,我有 2 个相同的块,每个块由 2 个页面序列组成。在我的示例中,假设子文档 1 有 4 页(n=4),子文档 2 有 2 页(m=2)。这是我得到的页码:
1/4
2/4
3/4
4/4
1/4
2/2
一切正常,除了第二个子文档的第一页。此时,<fo:page-number-citation-last ref-id="end"/>
返回 4,这是子文档 1 中的值。所以,1/2
我得到的是 ,而不是1/4
。
有什么建议我可以解决这个问题吗?