Les numéros de Page en xsl-fo (et apache fop) avec plusieurs page-séquences

J'ai un document composé de plusieurs sous-documents. Voici comment un sous-document est le suivant:

1 page

2-pages n

Puis vient le sous-document avec la même structure:

1 page

2-m pages

Comme je l'ai dit, les sous-documents sont combinées en une seule .fichier pdf.

Voici mon xsl-fo tempalte:

<?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>

Donc, j'ai 2 blocs identiques, composé de 2 page-séquences de chacun. Dans mon exemple, disons que le sous-document 1 a 4 pages (n=4) et le sous-document 2 a 2 pages (m=2). Voici les numéros de page que j'obtiens:

1/4
2/4
3/4
4/4
1/4
2/2

Tout est OK, sauf la première page de la deuxième sous-document. À ce point, <fo:page-number-citation-last ref-id="end"/> renvoie 4, qui est la valeur de la sous-document 1. Ainsi, au lieu de 1/2, je reçois 1/4.

Des suggestions comment je peux résoudre ce problème?

  • Vous ne montrez pas assez de XSL-FO code fiable pour diagnostiquer le problème. S'il vous plaît ajouter plus de contexte et de moins ........
  • Pourrait être le problème que j'ai plusieurs éléments avec id="end"?
  • Je ne peux que me répéter: on ne montre pas assez de XSL-FO code fiable pour diagnostiquer le problème. Mais bien sûr, que les Id ne sont pas uniques dans l'ensemble d'un document sont toujours un problème. FOP émet un avertissement parfois si les Identifiants ne sont pas sans ambiguïté.
InformationsquelleAutor user1414745 | 2014-03-26