Bonjour,
Je rencontre le problème suivant:
J'ai plusieurs tableaux dans un Xml avec toutes les informations nécessaire pour le transformer en format Cals destiné à une mise en page dan InDesign.
Un tableau avec de bonne largeur de colonnes a pour somme des colwidth une valeur de 100%. certain tableau ont des valeur differante et la somme n'arrive pas à 100%. Exemple :
......
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <Tableau> <table pgwide="1" tabstyle="T1"> <tgroup cols="4"> <colspec colname="1" colnum="1" colwidth="3*"/> <colspec colname="2" colnum="2" colwidth="2*"/> <colspec colname="3" colnum="3" colwidth="2*"/> <colspec colname="4" colnum="4" colwidth="2*"/>
Tableau conforme :
................
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <Tableau> <table pgwide="1" tabstyle="jold"> <tgroup cols="6"> <colspec colname="1" colnum="1" colwidth="18.35*"/> <colspec colname="2" colnum="2" colwidth="31.23*"/> <colspec colname="3" colnum="3" colwidth="17.85*"/> <colspec colname="4" colnum="4" colwidth="5.02*"/> <colspec colname="5" colnum="5" colwidth="13.06*"/> <colspec colname="6" colnum="6" colwidth="14.5*"/>
J'ai develloper un Xsl qui prend la valeur avant le * et qui l'inscrit dans une variable $Width_percent, Apres je redefini cette variable qui est exprimé en % en fonction de ma mise en page InDesign qui peut etre sur une pleine page ou sur 2 collonne, cette valeur est exprimé en Pt pleine page 496.062992126 demi page 240.94488189.
Jusqu'ici tous va bien.
Maintenant là ou sa ce corse c'est que je souhaite calculer le total des colwidth qui n'arrive pas à 100% et les recalculer avec une regles de 3 en définissant un taux de correction.
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 <!--Calcul de la largeur des colonnes du tableau--> <xsl:template name="largeur_colonne"> <xsl:param name="position"/> <xsl:for-each select="ancestor::tgroup/colspec"> <xsl:if test="position() = $position"> <xsl:variable name="width_percent"> <xsl:value-of select="substring-before(@colwidth, '*')"/> </xsl:variable> <xsl:if test="ancestor::table[@pgwide='0']"> <xsl:value-of select="(240.94488189 div 100) * $width_percent"/> </xsl:if> <xsl:if test="ancestor::table[@pgwide='1'] | ancestor::table[@tabstyle='joldAbonnements']"> <xsl:value-of select="(496.062992126 div 100) * $width_percent"/> </xsl:if> </xsl:if> </xsl:for-each> </xsl:template>
Avez vous une idées sur ce point.
Merci d'avance
Partager