IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

PB de présentation du texte d'un cellule d'un tableau


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 141
    Par défaut PB de présentation du texte d'un cellule d'un tableau
    Bonjour à tous,

    J'ai un souci de présentation d'un tableau dans un pdf construit avec xsl-fo. Mais je suis plus que débutant dans le domaine quelqu'un pourrais-t-il m'aider.

    En effet le texte des cellule est collé à gauche et déborde des cellules.


    voici mon code xsl pour les tableaux :
    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
     
    <!-- tableaux -->
    	<xsl:template match="table">	
    		<fo:table table-layout="auto">            
    		    <fo:table-body>
    			    <xsl:apply-templates/>
    		    </fo:table-body>				
    		</fo:table>				
    	</xsl:template>
     
    	<xsl:template match="tr">
    		<fo:table-row>
    			<xsl:apply-templates/>
    		</fo:table-row>
    	</xsl:template>
     
    	<xsl:template match="td">
    		<fo:table-cell border-width="1pt" border-style="solid" border-color="black">		
    			<xsl:if test="@colspan>=1">
    				<xsl:attribute name="number-columns-spanned"><xsl:value-of select="@colspan"/></xsl:attribute>
    			</xsl:if>
    			<xsl:if test="@rowspan>=1">
    				<xsl:attribute name="number-rows-spanned"><xsl:value-of select="@rowspan"/></xsl:attribute>
    			</xsl:if>
    			<fo:block xsl:use-attribute-sets="TABLE_CELL" ><xsl:apply-templates/></fo:block>
    		</fo:table-cell>
    	</xsl:template>
    Voici le style xsl associé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	<xsl:attribute-set name="TABLE_CELL">	
        	<xsl:attribute name="margin">5px</xsl:attribute>
        	<xsl:attribute name="text-align">left</xsl:attribute>    	
    	</xsl:attribute-set>
    et le rendu super moche lol en pdf (en joint)
    Images attachées Images attachées  

  2. #2
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    Et si tu vires le <xsl:attribute name="margin">5px</xsl:attribute> ?

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 141
    Par défaut
    Citation Envoyé par Loceka Voir le message
    Et si tu vires le <xsl:attribute name="margin">5px</xsl:attribute> ?
    La marge est réduit mais mon problème de présentation subsiste

    J'ai toujours un décalage du texte de toutes mes cellules à droite, avec pour certaines d'entre-elles (au contenu long) une superposition avec le border

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 141
    Par défaut
    Pour info, voici la source XML :

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    <table xesEdition="true">
    <tr>
        <td>
            <PAR>Titre colonne 1  </PAR>
            <PAR>sur deux lignes   </PAR>
        </td>
        <td>
            <PAR>Titre colonne 2                     </PAR>
        </td>
        <td>
            <PAR>Titre colonne 3 </PAR>
            <PAR>deuxligne    </PAR>
        </td>
        <td>
            <PAR>Titre colone 4                     </PAR>
        </td>
    </tr>
    <tr>
        <td>
            <PAR>Titre ligne1                   </PAR>
        </td>
        <td>
            <PAR>Intérieur d'une cellule clzkj   </PAR>
            <PAR>ffd fezlfzfzlf ffl felf    </PAR>
            <PAR>felfez, ffezl, l, fzlfz, f   </PAR>
            <PAR>    </PAR>
        </td>
        <td>
            <PAR>Intérieur d'une cellule </PAR>
            <PAR>deux ligne </PAR>
            <PAR> qsmlsqmlfkmf </PAR>
            <PAR>trois ligne  </PAR>
        </td>
        <td>
            <PAR>Intérieur d'une cellule                    </PAR>
        </td>
    </tr>
    <tr>
        <td rowspan="2">
            <PAR>Titre ligne 2                     </PAR>
            <PAR>Titre ligne 3                     </PAR>
        </td>
        <td colspan="2">
            <PAR>Intérieur d'une cellule    </PAR>
            <PAR>Intérieur d'une cellule    </PAR>
        </td>
        <td>
            <PAR>Intérieur d'une cellule                     </PAR>
        </td>
    </tr>
    <tr>
        <td>
            <PAR>Intérieur d'une cellule    </PAR>
        </td>
        <td>
            <PAR>Intérieur d'une cellule                    </PAR>
        </td>
        <td>
            <PAR>Intérieur d'une cellule                     </PAR>
        </td>
    </tr>
    </table>

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 141
    Par défaut
    J'ai trouvé plusieurs tuto expliquant comment créer un tableau simple. Mais dans mon cas je ne connais pas le nombre de colonne et ligne à l'avance et de plus elles peuvents être fusionnées.

    Quelqu'un aurait-il un exemple ou un tuto se rapprochant de ce que j'essai d'obtenir ?

  6. #6
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    Je n'ai jamais réellement utilisé XSL-FO, mais ce que je peux te conseiller est de procéder comme suit :

    1. écris un tableau XSL-FO en "dur" en suivant le tuto que tu as trouvé et fais en sorte qu'il ressemble à ce que tu veux.
    2. découpe-le en templates pour qu'il puisse être généré à partir de ton XML.


    Si tu suis ça, normalement tu ne devrais pas rencontrer de problème.

    Là ton soucis de présentation provient très probablement des styles que tu appliques aux éléments.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Rajouter texte dans une cellule d'un tableau de cellules (cell array)
    Par DudeTitus dans le forum MATLAB
    Réponses: 2
    Dernier message: 20/06/2014, 13h12
  2. Position du texte dans une cellule d'un tableau
    Par kwazikwantik dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 4
    Dernier message: 12/12/2009, 18h25
  3. [VBA] Problème récup texte d'une cellule dans un tableau
    Par Marco le Pouillot dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 30/01/2006, 17h06
  4. Faire défiler un texte dans une cellule de tableau
    Par Furius dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 01/12/2005, 17h06
  5. Cacher le texte d'une cellule MSFlexGrid
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 04/09/2005, 19h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo