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

Format d'échange (XML, JSON...) Java Discussion :

probleme avec le trio xml/xsl/fop


Sujet :

Format d'échange (XML, JSON...) Java

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 113
    Points : 42
    Points
    42
    Par défaut probleme avec le trio xml/xsl/fop
    Bonjour,
    Je suis en train de développer des états de courrier PDF avec xml/xsl/fop. les donnees je les recupere de la base de données. je recupere une liste de paragraphe en fait.
    Mon probleme est que quand je recupere une paragraphe, alors que dans cette paragraphe il y a des apostilles ou une liste.. comment je pourrais savoir d'avance qu'il y a une apostille et que je dois placer le texte correspondant en bas de bas??
    merci pour votre aide.

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 113
    Points : 42
    Points
    42
    Par défaut
    alors il n y a personne pour me répondre

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Bonsoir, j'utilise aussi ces techno, mais je ne comprend pas ton problème.
    Peut tu donner un exemple de ces paragraphes qui posent problèmes? une partie du xslt-fo généré?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 113
    Points : 42
    Points
    42
    Par défaut
    voila on fait, j'ai une paragraphe que je vais stocker en base de donnée, voila un exemple :
    Très puissant dans sont effet structurel, il y a bcp de choix
    d'implémentations sur lequels il est necessaire de travailler :
    • variation sur le container utilisé (list,vect, etc) ou sur un stockage des
    • liens dans les feuilles.
    • l'importance de l'ordre des fils (pensez a utiliser un iterator)
    • références parent
    • Qui détruit les composants ?
    • un Cache
    • stockage des composants ?
    Il faut être généreux avec l'interface car l'on cherche a cacher la
    distinction entre feuille et nœud. Mais cette distinction est nécessaire si
    l'on ne veut pas risquer des opérations de nœud1 sur les feuilles.


    mon probleme, quand je vais recuperer cette paragraphe, jevais mettre le contentu dans le fichier xml dans la balise <paragraphe></paragraphe>, certainement je vais perdre le formatage comme les listes, les indontations, les exposants etc...
    voila mon souci, y a t'il une solution?
    merci

  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
    J'avoue ne pas forcément comprendre grand chose à ce que tu viens d'exposer, mais pour utiliser les mêmes technos je ne vois pas d'obstacles majeurs à ton but.

    Je crois comprendre qu'à partir de ta BD tu vas générer tes fichiers xml dans un format personnel. Puis tu appliquera une (ou différentes) feuilles xsl-fo pour générer tes pdfs.
    Dans ton fichiers xml tu as des informations de structure et de contenu, et dans tes feuilles xsl-fo tes règles de transformation.

    Il n'y a aucune raison pour que tu "perdes" tes identations.
    -Soit tu as une structure que tu va afficher en générant une indentation à la volée et c'est ta feuille xsl-fo qui va te spécifier la mise en page.
    -Soit tu traites ton texte en bloc sans te soucier de sa signification et tu gardes les espaces et les sauts de lignes.

    Tout dépends de tes données et de ce que tu souhaites en faire, mais en tout état de cause il y a des solutions.

    Pour des réponses plus précises il faudrait des problèmes plus concrets.
    S'il n'y a pas de solutions, il n'y a pas de problème.

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 113
    Points : 42
    Points
    42
    Par défaut
    Je suis désolé, je me suis mal exprimé
    en fait toute la paragraphe va être stocké dans un type par exemple text sur sqlServer
    apres tout le contenu va etre stocker dans une balise xml <paragraphe></paragraphe>
    mon xsl-fo qd il rencontre une balise paragraphe il va l'afficher telquel, donc a mon avis je pers le formattage de mon paragraphe non?

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Un document xslt-fo pour être traité correctement à l'affichage ne doit contenir que des tags xslt-fo (pas d'html par exemple). Il faut donc que tu traduises tous tes tags perso contenu dans le paragraphe provenant de ta base sql par des tags xslt-fo.
    A l'aide d'une transformation xslt par example.

  8. #8
    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
    Citation Envoyé par snetechen
    mon xsl-fo qd il rencontre une balise paragraphe il va l'afficher telquel, donc a mon avis je pers le formattage de mon paragraphe non?
    Si tu ne précises rien oui tu vas perdres le formatage, mais il y a moyen de préciser un comportement autre.
    Par exemple si tu utilises FOP 0.93:
    http://xmlgraphics.apache.org/fop/fo.html#fo-preformat

    Quand je parle de formatage je ne parle bien sur que du problème des espaces et des sauts de ligne.
    Pour tout ce qui est des "décorations" (listes, gras, soulignement...) il faut faire la traduction entre ton format d'origine (que tu n'as pas précisé pour l'instant) et xsl-fo.

    En tout état de cause je te conseil un bon bouquin: XSL-FO par Dave Pawson chez O'Reilly
    S'il n'y a pas de solutions, il n'y a pas de problème.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 113
    Points : 42
    Points
    42
    Par défaut
    décidement je m'exprime pas bien, je l'avoue

    en fais je connais xsl_fo, et j'ai pu produire ce que je voulais en utilisant cette technologie et meme avec Itext. mais toutes mes données etaient statiques.
    le probleme ma base de donnees contient une table de paragraphe

    la paragraphe en question je dois la stocker comme ça :

    xxxxxxxx xxxxxxxxxxxxxx xxxxxxxxxxxxxxx xxxxxxxxxxx xxxxxxxxxx xxxxxxxxxxx
    • xxxxxxx xxxx xxxxxxxxxx xxxxxxx xxxxxxxxxxxxxxxxxxxxxxx
    • xxxxxxxxxx xxx xxxxxxxx xxxxxxxxxxxxx xxxxxxxxxxxxxxxxx
    • xxxxxxxxxx xxxxx xxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxx
    • xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxx xxxxxx xxxxxxx xxxxxxxxxxxx xxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    ou bien je la stocke comme ça :

    xxxxxxxx xxxxxxxxxxxxxx xxxxxxxxxxxxxxx xxxxxxxxxxx xxxxxxxxxx xxxxxxxxxxx
    <Liste> <element>• xxxxxxx xxxx xxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</element>•
    <element>• xxxxxxx xxxx xxxxxxxxxx xxxxxxx xxxxxxxxxxxxxxxxxxxxxxx</element>•
    <element>• xxxxxxx xxxx xxxxxxxxxx xxxxxxx xxxxxxxxxxxxxxxxxxxxxxx</element>•
    • xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</Liste>
    xxxxxx xxxxxx xxxxxxx xxxxxxxxxxxx xxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    comme ça moi quand je récupère la paragraphe, je la parse , et si je rencontre l'élément <Liste> j'applique l'élément adapté pour afficher une liste avec xsl-fo

    merci bcp

  10. #10
    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
    Citation Envoyé par snetechen
    toutes mes données etaient statiques
    Je suppose donc que tu écrivais directement un fichier xml avec des fo.
    Pour une liste tu faisais dans un truc dans le genre:

    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
     
    <fo:list-block >
            <fo:list-item >
                <fo:list-item-label end-indent="label-end()" >
                    <fo:block>
                        1-
                    </fo:block>
                </fo:list-item-label>
                <fo:list-item-body start-indent="body-start()" >
                    <fo:block>
                        Premier point,
                    </fo:block>
                </fo:list-item-body>
            </fo:list-item>
            <fo:list-item>
                <fo:list-item-label end-indent="label-end()">
                    <fo:block>
                        2-
                    </fo:block>
                </fo:list-item-label>
                <fo:list-item-body start-indent="body-start()">
                    <fo:block>
                        Deuxième point.
                    </fo:block>
                </fo:list-item-body>
            </fo:list-item>
        </fo:list-block>
    Donc maintenant tu va avoir un truc dans le genre dans ta feuille de transformation xsl.

    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
    <xsl:template match="Liste">
    <fo:list-block>
      <xsl:apply-templates select="element">
    </fo:list-block>
    </xsl:template>
     
    <xsl:template match="element">
    <fo:list-item>
      <fo:list-item-label end-indent="label-end()">
      </fo:list-item-label>
      <fo:list-item-body start-indent="body-start()">
        <fo:block>
          <xsl:value-of select="element"/>
        </fo:block>
      </fo:list-item-body>
    </fo:list-item>
    </xsl:template>
    NB: c'est juste pour te donner une idée. Comme je n'utilise jamais les listes c'est sans aucun doute non opérationnel. De plus je l'ai fait en 30s donc ne prend pas ça pour argent comptant.
    S'il n'y a pas de solutions, il n'y a pas de problème.

Discussions similaires

  1. PHP probleme avec flux RSS, XML
    Par sirbaldur dans le forum Langage
    Réponses: 4
    Dernier message: 06/06/2006, 15h34
  2. Problème de caractères accentués XML XSL PHP
    Par ladnacs dans le forum Langage
    Réponses: 3
    Dernier message: 24/05/2006, 15h04
  3. [Struts] Problème avec struts-config.xml
    Par The_freeman dans le forum Struts 1
    Réponses: 6
    Dernier message: 29/01/2006, 22h55
  4. Probléme cache avec IE et XML/XSL coté client.
    Par rataflo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 06/08/2005, 19h06
  5. [XML][XSL][FOP] transformation xml avec fop
    Par Le Marlou dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 05/12/2003, 16h58

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