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] XML-> PDF: Problème retour chariot


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 43
    Points : 22
    Points
    22
    Par défaut [xsl] XML-> PDF: Problème retour chariot
    Bonjour,

    Ca fait deux jours que je m'arrache les cheveux à cause de ce problème, j'ai cherché partout, j'ai tt essayé ... rien à faire!!!!

    Donc, moi j'essaye de générer un pdf à partir d'un xml (en JAVA donc xsl) et en fait il prend pas en considération le retour chariot!
    Quand j'affiche le xml avant la génération du pdf, dans les balises concernées les retours chariot sont supprimés ou remplacées par un espace!

    Qq'un aurait une solution?

    Merci d'avance

  2. #2
    Membre habitué
    Inscrit en
    Mai 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2007
    Messages : 262
    Points : 172
    Points
    172
    Par défaut
    bonjour,

    Pourrait t'on avoir une partie de tes codes XSL et XML pour mieux comprendre ?

    Merci

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 43
    Points : 22
    Points
    22
    Par défaut
    Bonjour,

    Mon xsl est le suivant (je vais mettre l'entete et la partie qui appelle la variable contenant les retour à la ligne:


    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0"
    	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    	xmlns:fo="http://www.w3.org/1999/XSL/Format">
    	<xsl:variable name="xmlFic" select="SRT.xml" />
    	<!--  <!DOCTYPE xsl:stylesheet [<!ENTITY nbsp " ">]> -->
     
    	<xsl:template match="/">
    		<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
    			xmlns:fox="http://xml.apache.org/fop/extensions">
    			<fo:layout-master-set>
    				<fo:simple-page-master master-name="all"
    					page-height="29.7cm" page-width="21cm" margin-top="1cm"
    					margin-bottom="2cm" margin-left="2.5cm" margin-right="2.5cm">
    					<fo:region-body margin-top="3cm"
    						margin-bottom="1.5cm" />
    					<fo:region-before extent="3cm" />
    					<fo:region-after extent="1.5cm" />
    				</fo:simple-page-master>
    			</fo:layout-master-set>
    			<fo:page-sequence master-reference="all">
    				<fo:static-content flow-name="xsl-region-before">
    					<xsl:call-template name="entete" />
    				</fo:static-content>
    				<fo:static-content flow-name="xsl-region-after">
    					<xsl:call-template name="basDePage" />
    				</fo:static-content>
    				<fo:flow flow-name="xsl-region-body">
    					<fo:block>
    						<xsl:call-template name="miseEnPage" />
    					</fo:block>
    				</fo:flow>
    			</fo:page-sequence>
    		</fo:root>
    	</xsl:template>
    .......
     
     
    <fo:block id="resume" font-size="10pt" line-height="24pt"
    			space-before.optimum="28pt" space-after.optimum="10pt"
    			background-color="black" color="white">
    			Résumé avec retour à la ligne
    		</fo:block>
    		<fo:block white-space-collapse="false"
    			white-space-treatment="preserve" space-after.optimum="18pt"
    			font-weight="normal" font-size="8pt">
    <xsl:value-of
    									select="RESUME" />
     
    ..... (suite)

    et mon .xml est le suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <!DOCTYPE ARCHIVE SYSTEM "http://localhost:7001/ARC/xml/arc.dtd">
    <ARCHIVE PATH_LOGO="URL(&apos;http://localhost:7001/ARC/images/logoSG.gif&apos;)">
        <ID>2229</ID>
        <REV>0</REV>
        <AUTHOR>nom prenom</AUTHOR>
        <DATE>15/06/2007</DATE>
        <TITLE>test pdf </TITLE>
        <CONF_ID>C1</CONF_ID>
        <SEV_ID>1</SEV_ID>
        <RESUME>resumé.  resum</RESUME>
        <COMPONENTS></COMPONENTS>
    ....(suite)
    et on voit bien le noeud RESUME ou les retour chariot sont transformé en espace blanc!

    Merci pour votre aide

  4. #4
    Membre habitué
    Inscrit en
    Mai 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2007
    Messages : 262
    Points : 172
    Points
    172
    Par défaut
    Pour faire un retour chariot grâce à ton XML si j'ai bien compris ce que tu veux, il faut que tu crée 2 balises Resumé et du coup tu vas avoir un retour chariot entre les 2 :

    <resume>texte</resume>
    <resume>texte2</resume>

    et tu arrives à ce résultat :

    text
    text2

    est-ce bien ce que tu voulais ???

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 43
    Points : 22
    Points
    22
    Par défaut
    non en fait moi je rentre dans mon formulaire
    "ligne 1" après je tape entré
    et j'ecris "ligne 2"
    ce qui me donne :
    resumé:
    ligne 1
    ligne 2
    donc j'ai le resumé sur deux lignes.
    Ensuite je veu générer un pdf, dc je passe par xsl (en java) et j'obtien le resumé sur une seule ligne, dc xsl ne prend pas en compte les retour chariot et ca se voit bien dans le xml généré.

  6. #6
    Membre habitué
    Inscrit en
    Mai 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2007
    Messages : 262
    Points : 172
    Points
    172
    Par défaut
    J'ai fait un test si c'est bien ca que tu veux, voici le code à adapter :

    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
    <fo:flow flow-name="xsl-region-body">
    <fo:block id="resume" font-size="10pt" line-height="24pt"
    			space-before.optimum="28pt" space-after.optimum="10pt"
    			background-color="black" color="white">
    			Résumé avec retour à la ligne
    		</fo:block>
    		<xsl:apply-templates select="ARCHIVE/RESUME"/>
    				</fo:flow>
    			</fo:page-sequence>
    		</fo:root>
    	</xsl:template>
     
     <xsl:template match="ARCHIVE/RESUME">
     <fo:block white-space-collapse="false"
    			white-space-treatment="preserve" space-after.optimum="18pt"
    			font-weight="normal" font-size="8pt">
    <xsl:value-of select="." />
    		</fo:block>
    </xsl:template>
    au niveau du XML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <ARCHIVE>
        <ID>2229</ID>
        <REV>0</REV>
        <AUTHOR>nom prenom</AUTHOR>
        <DATE>15/06/2007</DATE>
        <TITLE>test pdf </TITLE>
        <CONF_ID>C1</CONF_ID>
        <SEV_ID>1</SEV_ID>
        <RESUME>resumé.</RESUME>
        <RESUME>resum</RESUME>
        <COMPONENTS></COMPONENTS>
    </ARCHIVE>
    et ca marche !

    Voila

  7. #7
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 43
    Points : 22
    Points
    22
    Par défaut
    Merci little_flower mais ce n'est pas vraiment ce que je voulais!(cf mon dernier post)

    Merci pour ton aide
    Bonne journée

  8. #8
    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
    Sinon il faut qu'il y ait déjà un retour chariot présent dans la balise du xml d'origine genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <RESUME><![CDATA[ligne1
    ligne2]]></RESUME>
    Et après il faut déclarer en fo un block :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <fo:block white-space-collapse="false"><xsl:value-of select="RESUME"/></fo:block>

  9. #9
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 43
    Points : 22
    Points
    22
    Par défaut
    Dans mon .dtd
    je déclare :
    <!ELEMENT RESUME (#PCDATA)>
    et quand je change le PCDATA en CDATA il l'accepte pas !

  10. #10
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 43
    Points : 22
    Points
    22
    Par défaut
    heeeeeeeeeeeeeelp!

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    RAS
    Inscrit en
    Mai 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : RAS
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 27
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par Little_flower Voir le message
    Pour faire un retour chariot grâce à ton XML si j'ai bien compris ce que tu veux, il faut que tu crée 2 balises Resumé et du coup tu vas avoir un retour chariot entre les 2 :

    <resume>texte</resume>
    <resume>texte2</resume>

    et tu arrives à ce résultat :

    text
    text2

    est-ce bien ce que tu voulais ???
    Bonjour Little_flower,

    je débute dans le xml/xsl, est en lisant les posts ci et là, je suis tombé ici.
    et ce que tu proposes ici est justement ce que je cherche
    crée 2(ou plus) balises avec un retour chariot entre les 2 :
    <GED_JojoSs>
    <Infos>
    <Commentaire>texte_1</Commentaire>
    <Commentaire>texte_n</Commentaire
    <Commentaire>texte_n+1</Commentaire>
    </Infos>
    <GED_JojoSs>
    en passant par:
    <tr>
    <td class="Tableau_Space" colspan="6" rowspan="1">
    <div class="Commentaire">
    <xsl:apply-templates select="Commentaire">
    </xsl:apply-templates>
    </div>
    </td>
    </tr>
    et arriver à ce résultat avec un <xsl:apply-templates select="Commentaire">:
    text_1
    text_n
    text_n+1
    par contre je vois pas ou mettre ce code:
    <fo:block white-space-collapse="false">
    Merci bcp

Discussions similaires

  1. problème retour chariot
    Par knebhi dans le forum Langage
    Réponses: 11
    Dernier message: 08/03/2009, 13h15
  2. Problème Retour Chariot
    Par nathalie16 dans le forum iReport
    Réponses: 4
    Dernier message: 18/04/2008, 08h45
  3. Problème retour chariot dans un texte
    Par arnaud_verlaine dans le forum Flash
    Réponses: 2
    Dernier message: 30/08/2006, 22h06
  4. Problème retour chariot dans un fichier texte
    Par Redondo dans le forum Windows
    Réponses: 2
    Dernier message: 08/02/2006, 18h23
  5. Nouvelle installation MySql4.0.2d - Problème retour chariot
    Par pit_bulle dans le forum Installation
    Réponses: 2
    Dernier message: 30/09/2004, 16h07

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