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 :

créer une table des matières avec fop


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 120
    Points : 65
    Points
    65
    Par défaut créer une table des matières avec fop
    désolé c encore moi. voila, vous pouvez m'épargner des heures de recherche si ce n'est plus. J'ai plusieurs fichiers xml disons de cette forme :
    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
    <page>
    <chapitre>
      <titre>Intro</titre>
      <para> blabla </para>
    </chapitre>
     
    <chapitre>
      <titre>premier chapitre</titre>
      <para>blabla</para>
    </chapitre>
     
    <chapitre>
      <titre>conclusion</titre>
      <para>blabla</para>
    </chapitre>
     
    </page>
    et j'aimerais générer un fichier pdf qui contient une table des matières du genre :

    Table des matières :
    Intro ------------ 1
    premier chapitre ----------- 2
    conclusion ----------------5

    est il possible de générer cette table des matières automatiquement à partir des balises <chapitre> ???

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 120
    Points : 65
    Points
    65
    Par défaut
    j'arrive a peu pres a creer la table des matiere mais y a quand meme des trucs qu'il me manque. deja, il faut que vous sachiez que pour chacun de mes templates, je match comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <template match="xhtml:blabla">
    ce qui est important c le "xhtml:". Voici mon bout de code pour la table des matieres:

    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
     
    					<!--Table des matieres-->
    					<fo:block text-align="left" font-weight="bold" font-size="20pt"  padding-top="10pt" padding-bottom="10pt">
    						Table des matières
    					</fo:block>
     
    					<xsl:for-each select="xhtml:body/xhtml:h1">
    					  <fo:block font-size="9pt" start-indent="10pt">
    						  <fo:inline>
    							  <xsl:value-of select="."/>
    							  <fo:leader leader-pattern="dots" leader-length="1in"/>
    							  <xsl:text>p. </xsl:text>
    							  <fo:page-number-citation ref-id="{generate-id(.)}"/>
    						   </fo:inline>
    					   </fo:block>
    					</xsl:for-each>
    					<!--Fin de la table des matieres-->
    Le premier pb, c que j'arrive po a afficher le numero des pages (il ya ecrit "p." et rien apres). g tout de meme tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <fo:page-number-citation ref-id="{generate-id(xhtml:.)}"/>
    mais comme je m'y attendais,y a un message d'erreur. Alors comment dois je faire ???

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 120
    Points : 65
    Points
    65
    Par défaut
    personne n'a la solution ? je veux juste arriver a afficher le numéro de chaque page qui contient un titre

  4. #4
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    il faut que le ref-id référence l'id attribué au bloc contenant ton titre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <xsl:template match="xhtml:h1">
      <fo:block id="{generate-id(.)}">
      ...
      </fo:block>
    </xsl:template>

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 120
    Points : 65
    Points
    65
    Par défaut
    truc tout bete mais qui marche. merci encore une fois. je commence a avoir une grosse dete envers toi

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 120
    Points : 65
    Points
    65
    Par défaut
    le truc, comme tu as pu le constater, c que je suis vraiment tout tout tout nouveau a ce langage. c a peine si je connaissais l'html

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

Discussions similaires

  1. Etat: comment créer une table des matières
    Par JenTry dans le forum IHM
    Réponses: 3
    Dernier message: 17/01/2019, 14h36
  2. [WD-2013] Gestion d'une table des matières avec plusieurs sections
    Par CrasherSEP dans le forum Word
    Réponses: 1
    Dernier message: 01/06/2015, 23h15
  3. Réponses: 2
    Dernier message: 02/09/2010, 10h26
  4. Réponses: 13
    Dernier message: 15/11/2007, 19h48
  5. [CR11] une table des matières, avec n° de page : possible ?
    Par kikidrome dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 08/09/2005, 11h49

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