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~FO] Table des matières


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre habitué Avatar de nicolas66
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 326
    Points : 146
    Points
    146
    Par défaut [XSL~FO] Table des matières
    Bonjour,

    Je voudrai savoir comment je pourrai générer automatiquement une table des matières d'un PDF.

    Après y avoir réfléchi longuement, je ne vois personnellement qu'une seule solution : écrire une table des matières dans un fichier XML et l'afficher à l'aide de XSL-FO.

    Avez-vous d'autres idées ? Merci d'avance


    Nico.

  2. #2
    Membre habitué Avatar de nicolas66
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 326
    Points : 146
    Points
    146
    Par défaut
    Arf, personne n'a d'idées ?

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    salut,

    la question est un peu vague....tu veux créer cette TDM à partir de quoi? quelles est le contenu pour lequel tu souhaites créer une TDM? sans plus de détail personne ne pourra t'aider

    faire une table de matière c'est assez simple mais il ya enormement de façon de faire qui dependent toutes du contexte. explique nous donc ton contexte et on t'aiguillera vers une solution ...enfin 'espére

  4. #4
    Membre habitué Avatar de nicolas66
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 326
    Points : 146
    Points
    146
    Par défaut
    Au départ, j'ai un fichier XML dont la structure ressemble à cela :

    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
     
    <personnes>
      <personne>
        <nom>Nom</nom>
        <prenom>Prenom</prenom>
        <adresse>Adresse</adresse>
      </personne>
     
      <personne>
        <nom>Nom</nom>
        <prenom>Prenom</prenom>
        <adresse>Adresse</adresse>
      </personne>
     
      <personne>
        <nom>Nom</nom>
        <prenom>Prenom</prenom>
        <adresse>Adresse</adresse>
      </personne>
    </personnes>
    Ensuite, j'ai un fichier XSL-FO qui doit générer un PDF avec ces pages :
    * Couverture avec image
    * Page blanche
    * Page d'index
    * Ensemble de pages : chaque page décrit une personne (nom, prénom, adresse)

    La page d'index doit dresser une liste de l'ensembles pages du PDF généré (ici, on aura donc 6 pages en tout). Ma question est donc : comment puis-je générer cette liste de pages ?

  5. #5
    Membre actif
    Avatar de JMLLB
    Inscrit en
    Septembre 2006
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 285
    Points : 268
    Points
    268
    Par défaut
    Si j'ai bien compris ton problème (et rien n'est moins sûr...) pour une personne tu as une page.

    Avec cette hypothèse ce n'est, il me semble, pas trop complexe:

    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
    <xsl:template match="personne" mode="TBM">
    <!-- impression de la ligne -->
    <fo:block>
      <fo:value-of select="nom"/>...<fo:value-of select="position()"/>
    </fo:block>
    </xsl:template>
     
     
    <xsl:template match="personne" mode="full">
    <!-- description de la personne -->
    <fo:block><fo:value-of select="nom"/></fo:block>
    <fo:block><fo:value-of select="prenom"/></fo:block>
    <fo:block><fo:value-of select="adresse"/></fo:block>
    <!-- saut de page -->
    <fo:block break-after="page" />
    </xsl:template>

  6. #6
    Membre habitué Avatar de nicolas66
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 326
    Points : 146
    Points
    146
    Par défaut
    Bon, j'ai fini par résoudre le problème mais c'était plus complexe que ce tu m'avais proposé. En fait, il faut effectuer deux passes :

    -> La première passe créé un fichier XSL-FO à partir du fichier XML initial. On obtient donc une structure par page avec un titre pour chacune.
    -> La seconde passe prend en entrée le fichier de sortie de la passe précédente en parcourant toutes les pages. En fait, on recopie tout le contenu sauf pour la page dédiée à la table des matières où l'on créé une liste des pages.

    Bref, ca fonctionne impec. Merci qd même pour ton aide

  7. #7
    Membre habitué Avatar de nicolas66
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 326
    Points : 146
    Points
    146
    Par défaut
    Citation Envoyé par nicolas66
    Bon, j'ai fini par résoudre le problème mais c'était plus complexe que ce tu m'avais proposé. En fait, il faut effectuer deux passes :

    La première passe créé un fichier XSL-FO à partir du fichier XML initial. On obtient donc une structure par page avec un titre pour chacune.
    La seconde passe prend en entrée le fichier de sortie de la passe précédente en parcourant toutes les pages. En fait, on recopie tout le contenu sauf pour la page dédiée à la table des matières où l'on créé une liste des pages.

    Bref, ca fonctionne impec. Merci qd même pour ton aide

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

Discussions similaires

  1. [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
  2. [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
  3. [OpenOffice][Texte] Table des matières
    Par fuhraih dans le forum OpenOffice & LibreOffice
    Réponses: 6
    Dernier message: 12/08/2005, 11h40
  4. créer une table des matières avec fop
    Par gedeon555 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 05/07/2005, 15h54
  5. Xsl Fo : Table des matieres
    Par serwol dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/06/2005, 09h46

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