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 :

[XSL] Creation d'un tableau sous xsl~fo à partir d'un tableau XHTML [Débutant(e)]


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 120
    Par défaut [XSL] Creation d'un tableau sous xsl~fo à partir d'un tableau XHTML
    Bonjour,
    alors je commençais à m'intéresser un peu sur xsl-fo, voilà qu'un projet me plonge carrément dedans!
    j'ai un gros fichier xml composé essentiellement de tableaux que je dois tranformer en pdf avec du xsl-fo. je ne me retrouve pas entre le code du tableau dans xsl-fo et mes balises de tableaux dans le xml: table tr th td.

    Comment dois-je procéder pour faire mon xslfo? ça me prend la tête car je ne me suis pas encore familiarisé avec xsl-fo.
    merci

  2. #2
    Membre émérite
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Par défaut
    c facile :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <table> devient <fo:table>
    <tr> deviet <fo:table-row>
    <td> devient <fo:table-cell>
    il faut declarer autant de table-column

    que tes



    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <th> devient <fo:table-header>
    n'hesite si tu as un pb

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 120
    Par défaut
    Pour les table-column c'est bon j'en ai 21 et je les ai toutes déclarer. c'est au niveau des tr et td: comment déterminer que td devient table-cell par exple?
    j'ai fait ça pour l'instant et l'affichage n'est pas bonne: la table affiche en répétition le contenu des th et mal le td (en horizontal au lieu de vertical)
    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
    <xsl:template match="/">
    			<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
          <fo:layout-master-set >
            <fo:simple-page-master  master-name="simpleA4" page-height="21cm" page-width="29.7cm" margin-top="2cm" margin-bottom="2cm" margin-left="2cm" margin-right="2cm">
              <fo:region-body/>
            </fo:simple-page-master>
          </fo:layout-master-set>
          <fo:page-sequence master-reference="simpleA4">
            <fo:flow flow-name="xsl-region-body">
              <fo:block font-size="10pt" font-weight="bold" space-after="5mm">
              <xsl:apply-templates />
              </fo:block>
            </fo:flow>
            </fo:page-sequence>
        </fo:root>
    	</xsl:template>
    	<xsl:template match="Table">
    	<fo:block font-size="10pt">
                <fo:table border="0.5pt black"  width="27cm" text-align="center" border-spacing="3pt" >
                  <fo:table-column column-width="1.5cm"/>
                  <fo:table-column column-width="1cm"/>
                  <fo:table-column column-width="1.5cm"/>
                  <fo:table-column column-width="1cm"/>
                  <fo:table-column column-width="1cm"/>
                  <fo:table-column column-width="2cm"/>
    				<fo:table-column column-width="1.5cm"/>
                  <fo:table-column column-width="1cm"/>
                  <fo:table-column column-width="1cm"/>
                  <fo:table-column column-width="1cm"/>
                  <fo:table-column column-width="1cm"/>
                  <fo:table-column column-width="1cm"/>
                  <fo:table-column column-width="2cm"/>
                  <fo:table-column column-width="2cm"/>
                  <fo:table-column column-width="1.5cm"/>
                  <fo:table-column column-width="2cm"/>
                  <fo:table-column column-width="1cm"/>
                  <fo:table-column column-width="1cm"/>
                  <fo:table-column column-width="1cm"/>
                  <fo:table-column column-width="1cm"/>
                  <fo:table-column column-width="1cm"/>
                  <fo:table-header>
    					<fo:table-row>
    						<fo:table-cell border-spacing="3pt" text-align="center">
    						<xsl:for-each select="TH">
    							<fo:block>
    							<xsl:value-of select="."/>
    							</fo:block>
    							</xsl:for-each>
    						</fo:table-cell>
    					</fo:table-row>
    				</fo:table-header>
                  <fo:table-body>
    				  <fo:table-row>
    			<fo:table-cell border-spacing="3pt" text-align="center">
    				<fo:block><xsl:for-each select="T"><xsl:value-of select="."/></xsl:for-each></fo:block>
    			</fo:table-cell>
    			</fo:table-row>
                  </fo:table-body>
                </fo:table>
           </fo:block>
    	</xsl:template>

  4. #4
    Membre émérite
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Par défaut
    tu dois mettre tes table-celle dans le for-each


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <xsl:for-each select="TH">
        </fo:table-cell>
            <fo:block>
              <xsl:value-of select="."/>                                                            </fo:block>
       </fo:table-cell>
     </xsl:for-each>

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 120
    Par défaut
    j'ai testé mais ça a pas marché. Au fait pour réaliser en xsl-fo un tableau du genre, comment faire?
    je suis carrément perdu dans le truc
    Fichiers attachés Fichiers attachés

  6. #6
    Membre émérite
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Par défaut
    c'est assez simple

    - le nombre de ligne est determiné par le fo:table-column
    - l'entete de ton tableau est constitué de deux fo:table-row qui sont contenu dans un fo:table-header

    pour faire l'équivalent du rowspan/colspan, utilise l'attribut number-rows-spaned/number-column-spanned

    sinon, si tu as telechager fop, tu peux aller dans le repertoire

    examples\fo\tables

    et tu y trouvera des exemples de tableaux sur lesquels tu peux t'inspirer.....


    si tu as un pb, n'hesite pas à revenir.

Discussions similaires

  1. alterner les couleurs dans un tableau avec xsl
    Par Eithelgul dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 03/05/2015, 23h29
  2. [XSL] table des matières avec sous-titres
    Par Celelibi dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 25/05/2006, 20h13
  3. tableau en xsl
    Par lolo_bob2 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 01/03/2006, 22h23
  4. XSL creation élément / attribut
    Par huhuhtml dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 05/02/2006, 23h04
  5. XSL pour visualiser arbre XML sous forme de tableau en HTML
    Par mattmat dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 28/03/2003, 10h55

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