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] texte dépasse d'1 cellule sur l'autre [FAQ]


Sujet :

XSL/XSLT/XPATH XML

  1. #21
    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
    je ne sais pas comment tu insere le caratere que je t'ai filé..
    donc ceci est mon exemple de test et chez moi fop 0.20.5 pas de pb

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
      <fo:layout-master-set>
        <fo:simple-page-master 
    	margin-right="1.5cm"
    	margin-left="1.5cm"
    	margin-bottom="2cm"
    	margin-top="1cm"
    	page-width="21cm"
    	page-height="17cm"
    	master-name="first">
          <fo:region-body margin-top="1cm" margin-bottom="1.5cm"/>
          <fo:region-before extent="1cm"/>
          <fo:region-after extent="1.5cm"/>
        </fo:simple-page-master>
      </fo:layout-master-set>
     
      <fo:page-sequence master-reference="first">
        <fo:static-content flow-name="xsl-region-before">
          <fo:block line-height="14pt" font-size="10pt" 
    		text-align="end">table examples</fo:block>
        </fo:static-content>
        <fo:static-content flow-name="xsl-region-after">
          <fo:block line-height="14pt" font-size="10pt" 
    		text-align="end">Page <fo:page-number/></fo:block>
        </fo:static-content>
     
        <fo:flow flow-name="xsl-region-body">
          <fo:table border-width="0.5pt" border-color="red" table-layout="fixed">
     
        <fo:table-column column-width="10cm"/>
           <fo:table-body>
    	  <fo:table-row border-width="10cm" background-color="aqua">
    	    <fo:table-cell>
    	      <fo:block text-align="center">
    	      rowrowrowrowrowrowrowrowrowr&#8201owrowrowrowrowrowrowrowrowrow&#8201rowrowrownnnnnnhhgygtytyty
    	      </fo:block>
    	    </fo:table-cell>
    	  </fo:table-row>
    	</fo:table-body>
          </fo:table>
     
     
        </fo:flow>
      </fo:page-sequence>
    </fo:root>

    MET DES ; APRES LES CODES!!
    inspire toi donc de ce code....

  2. #22
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    bah qd je fais ton exemple ça marche, ça donne bien :
    rowrowrowrowrowrowrowrowrowr
    owrowrowrowrowrowrowrowrowrow
    rowrowrownnnnnnhhgygtytyty
    mais si je mets un simple espace à la place du &#8201 ;  ça me fait la même chose.

    Et si je mets un &#8201 ;  entre chaque lettre, ça me fait bien (malheureusement) :
    r o w r o w r o w r o w r o w r o
    w r o w r o w r o w r o w r o w r o w r o
    w r o w r o w r o w r o w r o w r o w r o
    w r o w r o w n n n n n n h h g y g t y t
    y t y

  3. #23
    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
    Pris d'un doute, j'ai testé la fonction que j'avais postée, et je confirme : le retour à la ligne se fait correctement avant le bord droit de la cellule. Tu devrais poster le bout de code XSL avec ton tableau.

  4. #24
    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
    t'as raison, c moi qui raconté n'imp....

    sinon je confirme pour "GrandFather" si tu remplace &#8201 ; par &#x200B ; ça devrait rouler...

  5. #25
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    La fonction de GrandFather :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <xsl:template name="insere-espaces-largeur-nulle">
    	  <xsl:param name="chaine"/>
    	  <xsl:value-of select="substring($chaine, 1, 1)"/>
    	  <xsl:if test="string-length($chaine) &gt; 1">
    	    <xsl:text>&#x200B;</xsl:text>
    	    <xsl:call-template name="insere-espaces-largeur-nulle">
    	      <xsl:with-param name="chaine" select="substring($chaine, 2)" />
    	    </xsl:call-template>
    	  </xsl:if>
    	</xsl:template>
    Le bout de code qui pose pb :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <fo:table-cell padding="1mm" border-top-style="none" border-bottom-style="none" border="{$glob-border-edition}">
     
    <fo:block font-size="8pt">
    	<xsl:value-of select="tiers/code"/> 
    	- <xsl:call-template name="insere-espaces-largeur-nulle">
    		<xsl:with-param name="chaine">
    		   <xsl:value-of select="tiers/nom"/>
    		</xsl:with-param>
    	</xsl:call-template>								
    </fo:block>
     
    </fo:table-cell>

    Version sans appel de la fonction de GrandFather :


    Version avec appel de la fonction de GrandFather :


    Voilà, à mon avis c'est juste un pb de config qui fait que les &#x200B ; ne sont pas pris en tant qu'espaces de taille nulle mais j'en sais pas plus.

  6. #26
    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
    essaye le même caractere en décimal

    http://unicode.e-workers.de/unicode3...99a2345a3c77cd

    c le 8203.......c peut être le code hexa qu'il n'aime pas

  7. #27
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    non toujours pareil ça me met des vrais espaces

    Par contre je suis en encoding="ISO-8859-1", qui ne contient pas le caractère &#200B , ça vient surement de là

  8. #28
    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 Charly33
    Par contre je suis en encoding="ISO-8859-1", qui ne contient pas le caractère &#200B , ça vient surement de là
    Certes ce caractère n'est pas compatible avec cet encodage, c'est bien pour cela qu'on utilise l'appel de caractère &# pour l'exprimer... Le parseur XML et le processeur XSLT travaillent eux uniquement en unicode en interne ; la valeur d'encodage que tu spécifies ne sert que comme indication de l'encodage du XML à parser.

    Le problème vient peut-être de la police que tu utilises.

  9. #29
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    Avec fop 0.92 il y a apparemment quelque chose pour gérer ce genre de cas:
    http://xmlgraphics.apache.org/fop/0.92/hyphenation.html

  10. #30
    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
    voila je retrouvé ce post,

    je viens de corriger ce pb chez moi. si ça interesse quelqu'un c'est bien le hyphenate mais c'est aussi supporté apparement dans la version 0.20.5


    voir par la:

    http://xmlgraphics.apache.org/fop/co...erty-hyphenate

    en gros faite ceci dans vos cellules :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <block hyphenate="true" language="en">HHHHHHHHHGGGFFMM</block>
    et puis normalement vous ne devez plus avoir de depassement

Discussions similaires

  1. [XSL-FO] texte avec rotation
    Par minou2005 dans le forum XSL/XSLT/XPATH
    Réponses: 15
    Dernier message: 21/03/2008, 09h27
  2. [XSL~FO] Texte dans Border
    Par troisj dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 21/02/2007, 15h18
  3. zone de texte - mots de passe
    Par deneufchatel dans le forum Access
    Réponses: 1
    Dernier message: 05/09/2006, 16h14
  4. [XSL][=>sortie "texte"]insérer des espaces
    Par koudjo dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 03/07/2006, 12h57
  5. [Génération Fichier Texte] \n ne passe pas bien
    Par nebule dans le forum Langage
    Réponses: 6
    Dernier message: 09/05/2006, 14h01

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