bonjour,
voila j'ai un petit probleme avec ma table des matieres, elle marche bien mais si l'élément au quelle elle fait référence s'étant sur plusieur page, elle indique le numéro de la derniere page de cet élement.
j'utilise FOP
voici le code de la table :
une idée pour corriger ce probleme ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 <xsl:template match="phase" mode="toc"> <fo:block space-before="2mm" text-align="start" text-align-last="justify"> <fo:inline font-weight="bold" > <fo:basic-link internal-destination="{@id}"> <xsl:value-of select="phaseName"/> </fo:basic-link> </fo:inline> <fo:inline> <fo:leader leader-pattern="dots" leader-pattern-width="5pt"/> <fo:page-number-citation ref-id="{@id}"/> </fo:inline> </fo:block> <xsl:apply-templates select="page" mode="toc"/> </xsl:template> <xsl:template match="page" mode="toc"> <fo:block text-indent="5mm" text-align="start" text-align-last="justify"> <fo:inline> <fo:basic-link internal-destination="{@id}"> <xsl:value-of select="pageName"/> </fo:basic-link> <fo:leader leader-pattern="dots" leader-pattern-width="5pt"/> <fo:page-number-citation ref-id="{@id}"/> </fo:inline> </fo:block> </xsl:template>
voici un peut plus de code pour aider a la compréhension :
je me doute bien que le probleme est lié au fait que mon template page est un tableau d'une ligne avec le keep-together="always", mais j'en ai besoin pour obtenir une mise en page correcte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 <!-- ========================= --> <!-- child element: phase --> <!-- ========================= --> <xsl:template match="phase"> <fo:block id="{@id}"> <fo:table table-layout="fixed" width="100%"> <fo:table-column column-width="proportional-column-width(1)"/> <fo:table-body> <fo:table-row height="210mm"> <fo:table-cell display-align="center"> <fo:block text-align="center" border-style="ridge" border-color="black" border-width="1mm" padding="10mm" break-before="page" margin-left = "18mm" margin-right="18mm" font-size="20pt" font-weight="bold"> <xsl:value-of select="phaseName" /> </fo:block> </fo:table-cell> </fo:table-row> </fo:table-body> </fo:table> </fo:block> <xsl:apply-templates select="page" /> </xsl:template> <!-- ========================= --> <!-- child element: page --> <!-- ========================= --> <xsl:template match="page" > <fo:block id="{@id}" > <fo:table table-layout="fixed"> <fo:table-column column-width="20cm" /> <fo:table-body> <fo:table-row keep-together="always"> <fo:table-cell> <fo:block > <fo:block space-before="5mm" font-family="sans-serif" font-weight="bold" border-style="solid" border-width="0.1mm" background-color="rgb(156,220,185)" margin-right="20mm"> <xsl:value-of select="pageName" /> </fo:block> <xsl:apply-templates select="cadre" /> </fo:block> </fo:table-cell> </fo:table-row> </fo:table-body> </fo:table> </fo:block> </xsl:template>
Partager