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 :

[FOP] XSL : linefeed-treatment="preserve" ne marche pas


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 42
    Points : 31
    Points
    31
    Par défaut [FOP] XSL : linefeed-treatment="preserve" ne marche pas
    Bonjour,

    J'hérite d'une application Java à modifier et je suis confronté au problème suivant :

    ( je vais essayé d'être le plus clair possible car je ne maitrise pas toutes les technologies dont je vais parler . n'hésitez pas à me corriger )

    l'application génère un fichier pdf à partir de données stockées dans une base. Le parser XML utilisé est SAX .Le flux XML est ensuite utilisé par FOP à travers une feuille de style XSL pour generer le PDF .

    Certains champs de la base contiennent des string sur plusieurs lignes :

    Ligne1
    Ligne2
    Ligne3

    A l'autre bout du flux, le report pdf a perdu les CR/LF et affiche :

    Ligne1 Ligne2 Ligne3

    J'ai essayé de modifié le fichier XSL en ajoutant linefeed-treatment="preserve" ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <fo:block linefeed-treatment="preserve" text-align="start" font-size="9pt" margin-left="1mm" padding="2mm">
    <xsl:value-of select="mon_element_xml"/>
    </fo:block>
    Mais le résultat est le même. A quel niveau faut-il agir ?
    Quelqu'un pour m'aider à trouver une solution ?

    Merci d'avance

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 557
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 557
    Points : 21 616
    Points
    21 616
    Par défaut
    Normalement ça ne devrait pas arriver.

    Enregistre toutes les couches dans un fichier, pour déterminer précisément à quelle couche les nouvelles lignes sont perdues.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 42
    Points : 31
    Points
    31
    Par défaut
    comment imprimer ( ou enregistrer ) le flux XML qui sort du parser ?

    C'est , je crois, le seul dont je ne suis pas sûr .

    La DB c'est bon.
    La valeur qui sert à faire le startElement (Inpoutsource) : c'est bon
    le XML : ??
    Le pdf :c'est pas bon !

    Y at-il d'autres couches ?

    Des infos sur le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cat.debug(part.getPart_packrem()); // log
    handler.element("assyremarks", part.getPart_packrem());
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    part.getPart_packrem()
    renvoie un type string

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cat.debug(part.getPart_packrem());
    => retourne :
    Ligne1
    Ligne2
    Ligne3

    handler est type sax.ContentHandler .

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 557
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 557
    Points : 21 616
    Points
    21 616
    Par défaut
    Citation Envoyé par giffle Voir le message
    comment imprimer ( ou enregistrer ) le flux XML qui sort du parser ?
    Chais pas, moi, j'ai pas ton code. Ce que tu passes au transformateur XSLT, imprime-le d'abord.

    Citation Envoyé par giffle Voir le message
    Y at-il d'autres couches ?
    Si tu peux enregistrer le résultat XSL-FO de la transformation avant de l'envoyer à FOP, fais-le.

    Des infos sur le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cat.debug(part.getPart_packrem()); // log
    handler.element("assyremarks", part.getPart_packrem())
    renvoie un type string
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat.debug(part.getPart_packrem());
    => retourne :
    Ligne1
    Ligne2
    Ligne3

    handler est type sax.ContentHandler .
    Comprends pas ce que c'est censé faire, montrer, prouver ou quoi que ce soit. ContentHandler n'a pas de méthode element(String, String) et je ne sais pas ce que ce serait censé faire si une API dérivée ajoutait ça.

    Je comprends pas d'où vient part.getPart_packrem(), je ne vois pas l'intérêt de le logguer.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Preserve Qui ne marche pas
    Par Master55 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/05/2009, 18h17

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