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]garder indentation d'un texte


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 88
    Points : 85
    Points
    85
    Par défaut [XSL-FO]garder indentation d'un texte
    Bonjour,

    mon XML contient des données en XML passées comme texte de manière à afficher les balises XML, du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <element>
    &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
     
    &lt;xs:schema xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot; elementFormDefault=&quot;qualified&quot; attributeFormDefault=&quot;unqualified&quot;&gt;
       &lt;xs:element name=&quot;toto&quot;&gt;
           &lt;xs:complexType&gt;
     
           &lt;/xs:complexType&gt;
       &lt;/xs:element&gt;
    &lt;/xs:schema&gt;
    </element>
    Je souhaite garder les retours chariots et l'indentation dans mes fichiers de sortie (pdf ou rtf).

    Pour le HTML j'ai mis ce texte dans un "textarea", ça fonctionne très bien, par contre je ne trouve pas si c'est possible en XSL-FO...

    Une idée?

  2. #2
    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,

    la seule méthode rapide, simple et efficace que j'ait trouvée pour avoir une sortie respectant les espacements et sauts de lignes (l'équivalent d'un <pre> en HTML), est :
    • d'utiliser une police à espacement fixe (Lucida par exemple, pour les polices TrueType)
    • de remplacer les espaces, généralement plus petits que les autres caractères dans ce genre de police, par un espace insécable
    Ce qui donne, en XSLT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <xsl:template match="pre">
    <fo:block font-family="lucida" font-size="10pt" line-height="1.5" space-after="12pt">
    <xsl:value-of select="translate(.,' ',' ')"/>
    </fo:block>
    </xsl:template>
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 88
    Points : 85
    Points
    85
    Par défaut
    merci pour ta réponse, j'ai essayé mais FOP ne prend pas en compte la police lucida...

    connais-tu d'autre police à espacement fixe? (j'ai testé "courier" mais FOP ne le reconnait pas non plus...)

    Merci

  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
    Citation Envoyé par pistache42
    merci pou ta réponse, j'ai essayé mais FOP ne prend pas en compte la police lucida...
    Normal, ça ne fait pas partie des polices standard PDF. Pour utiliser des polices TrueType avec FOP : http://xmlgraphics.apache.org/fop/0....uetype-metrics
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  5. #5
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 88
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par GrandFather
    Normal, ça ne fait pas partie des polices standard PDF. Pour utiliser des polices TrueType avec FOP : http://xmlgraphics.apache.org/fop/0....uetype-metrics
    cette méthode me semblant assez complexe, je n'ai pas essayé dele faire...

    à force de tester toutes les attributs possibles dans <fo:block>, j'ai trouvé celle-là : 'white-space-collapse="false" ' qui répond parfaitement à ce que je recherchais...

    Problème résolu!

    ps : Merci quand même GrandFather

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

Discussions similaires

  1. [XSL-FOP] affichage vertical d'un texte
    Par Lolitaaa dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 09/12/2008, 11h03
  2. [XSL]Généré une balise dans un texte
    Par Devilpika dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 25/06/2008, 14h59
  3. Indentation automatique de texte sélectionné
    Par renlel dans le forum NetBeans
    Réponses: 5
    Dernier message: 10/01/2008, 16h23
  4. [XSL-FO] Problème de gestion du texte
    Par Little_flower dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 16/05/2007, 11h14
  5. [XSL-FO] garder un block sur la même page
    Par yuri dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 28/01/2006, 13h26

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