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]Mettre une image en background


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    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 [XSL-FO]Mettre une image en background
    Bonjour,

    J'ai besoin de votre aide pour réaliser cela...

    Une image doit être contenue sur toutes mes pages avec toutes mes données au dessus ainsi que mes en têtes et pieds de page...

    Si vous avez une idée ou une solution...

    P.S : j'ai regardé les messages relatifs à ce sujet dans le forum et n'ai pas compris grand chose...

    Merci pour votre aide !

  2. #2
    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
    dans quel type de doc? pdf? html? en utilisant quoi?

    si c'est du pdf :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <fo:block background-image="detail.gif">
    mais ça deped de ce que tu utilise pour genrer le pdf? fop? antenna? etc...
    Ce n’est pas en cassant le thermomètre que vous ferez baisser la température

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

    Je programme en xsl fo...

    J'ai testé le code que tu m'a donné et que j'avais déjà essayé mais il ne fonctionne pas...

    Peut-être l'ai-je mal placé...

    Voici mon code 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
     
    <fo:flow flow-name="xsl-region-body" >
    <fo:block background-image="file:AideInfo/img/Filigrane-VersionEnregistree.gif">
    <fo:block>
    <xsl:apply-templates select="TableauCumulMontant"/>
     
    <fo:block padding-bottom="0.5cm"/>
     
    <fo:block color="blue" text-align="center" font-weight="bold" padding-top="0.5cm" font-size="12pt" padding-bottom="0.4cm">Montants saisis pour chaque salarié
    							     </fo:block>
     
    <xsl:apply-templates select="TableauMontantSalarie"/>
     
    </fo:block>
    </fo:block>
    </fo:flow>

  4. #4
    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
    tu utilise quoi pour convertir ton fo en pdf? (fop? antenna? ou autre?)

    essaye aussi de mettre l'image directement dans le repertoire du fo


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <fo:block background-image="Filigrane-VersionEnregistree.gif">
    Ce n’est pas en cassant le thermomètre que vous ferez baisser la température

  5. #5
    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'utilise FOP je vais tester cette solution mais pour être franche j'ai du mal à y croire !
    ....

    Je teste et je te dis !

  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
    Ca marche pas du tout....

    Je comprend pas...

    Si tu veux je t'envoie l'image c'est peut-être elle qui merde...

    Je vais tester avec une autre aussi...

  7. #7
    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
    Bon j'ai testé avec une autre image pas plus de résultat...

    Je t'envoie mon image au cas ou...
    Images attachées Images attachées  

  8. #8
    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
    Je viens de me rendre compte que lorsque j'imprime mon doc le fond apparait mais l'image est complétement décalée par rapport au contenu (en bas à droite coupée en plein milieu)...

    Mais elle n'apparait pas sur le PDF à l'écran ......

    Bizarre non ???

  9. #9
    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
    QUELLLE version de fop tu utilise?
    Ce n’est pas en cassant le thermomètre que vous ferez baisser la température

  10. #10
    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
    un exemple pour 0.20.5:

    le fo est dans keep.xml

    c'est finalement avec les bloc-container en position absolute que je l'ai fait..
    Images attachées Images attachées
    • Type de fichier : pdf bg2.pdf (12,0 Ko, 332 affichages)
    Fichiers attachés Fichiers attachés
    Ce n’est pas en cassant le thermomètre que vous ferez baisser la température

  11. #11
    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
    Effectivement je vois mon image mais j'ai un gros soucis de position...

    J'ai remis à quelques détails près le code que tu m'as donné...
    Mais mon image se situe en bas à droite... ????

    Je t'envoie mon PDF tu vas voir.

    CODE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <fo:flow flow-name="xsl-region-body">
     
    		<fo:block-container width="21cm" height="29.7cm" top="0cm" left="0cm" position="absolute">
     <fo:block>
      <fo:external-graphic src="file:Filigrane-VersionEnregistree.gif" scaling="uniform" /> 
      </fo:block>
      </fo:block-container>
    Voila....
    Images attachées Images attachées

  12. #12
    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
    il faut calculer les width, height du bloc-container en fonction du :

    - page-width
    - page-height
    - margin-top, margin-bottom, margin-left/right de ta région-body
    Ce n’est pas en cassant le thermomètre que vous ferez baisser la température

  13. #13
    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
    Nouveau problème

    Je n'arrive pas à régler l'image il faut que lui mette -5 pour certaines des propriétés je trouve ca très étrange de plus je pers tout mon contenu...

    Mon XSL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    		<fo:block-container width="21cm" height="29.7cm" content-width="75%" content-height="75%" top="-10cm" left="-5cm" right="-5cm" bottom="10cm" position="absolute" >
     <fo:block>
      <fo:external-graphic src="file:Filigrane-VersionEnregistree.gif" scaling="uniform" /> 
      </fo:block>
      </fo:block-container>
    La définition de ma page :
    *
    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
    <fo:simple-page-master master-name="garde"
    		page-height="29.7cm"
    		page-width="21cm"
    		margin-top="1cm"
    		margin-bottom="1cm"
    		margin-left="2cm"
    		margin-right="2cm">
     
    		<fo:region-body
    		margin-top="5cm"
    		margin-bottom="4cm"/>
     
    		<fo:region-before extent="5cm"/>
    		<fo:region-after extent="4cm"/>		
    		</fo:simple-page-master>
     
    		</fo:layout-master-set>
    Images attachées Images attachées

  14. #14
    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
    tu ne m'a toujours pas dit quelle version de fop tu utilise?
    Ce n’est pas en cassant le thermomètre que vous ferez baisser la température

  15. #15
    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
    C'est la dernière version à savoir, il me semble :

    la version 0.93...

    Voila...

    Je pense que mon image se définit mal car je possède un entête et un pied de page et qu'elle n'est définie que dans le body donc elle passe au dessus de l'entête et du pied de page et les cache...

    Voila mon PDF + le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <fo:block-container position="absolute" bottom="1cm" left="0cm" top="-2cm" right="0cm" width="21cm" height="29.7cm">
    			<fo:block >
    			<fo:external-graphic src="url(Filigrane-VersionEnregistree.png)" scaling="uniform" content-width="65%" content-height="65%" /> 
    			</fo:block>
    		  </fo:block-container>
    Images attachées Images attachées

  16. #16
    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 enfin trouvé !!!

    Il suffit de placer l'image dans un block-container comme tu m'avais dis puis de le placer dans le xsl:region-before et de la placer suivant les différents arguments top bottom right left...

    Pour moi :

    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
    <fo:static-content flow-name="xsl-region-before">
    		<fo:block-container position="absolute" bottom="3cm" left="0cm" top="2cm" right="0cm" width="21cm" height="29.7cm">
     
    		<fo:block>
    			<fo:external-graphic src="url(Filigrane-VersionEnregistree.png)" content-width="65%" content-height="65%" /> 
    		</fo:block>
     
    		 </fo:block-container>
    		<fo:block-container position="absolute" bottom="0cm" left="0cm" top="0cm" right="0cm" width="21cm" height="29.7cm">
    		<fo:block text-align="center" color="blue" font-size="20pt" font-weight="bold">
    		  Déclaration nominative annuelle des salariés
    		</fo:block>
     
    		<fo:block>
    		  <xsl:value-of select="SousTitre"/>
    		</fo:block>
    		<fo:block padding-bottom="1cm"/>
    		<fo:block>
    		  <xsl:apply-templates select="TableauTitre"/>
    		</fo:block>
    		</fo:block-container>
     
    		</fo:static-content>

  17. #17
    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
    Citation Envoyé par valal
    il faut calculer les width, height du bloc-container en fonction du :

    - page-width
    - page-height
    - margin-top, margin-bottom, margin-left/right de ta région-body

    ce que je t'ai fait c'était pour la 0.20.5. comme dit dans un précedent post il faut adapter la taille du bloc-container seulement à ta région body. je pense par exmple que tu as mis comme height/width pour le bloc-container les mêmes que ceux de tapage alors que tu dois mettre que le height réel de zone body, à savoir :

    width = (page-width) - [(margin-left) + (margin-right)]
    height = (page-height) - [(margin-top) + (margin-bottom)]

    ainsi tu limite le bloc-container uniquement à ta zone de body
    Ce n’est pas en cassant le thermomètre que vous ferez baisser la température

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

Discussions similaires

  1. [SP-2010] Mettre une image en background sur le bandeau du haut
    Par tazamorte dans le forum SharePoint
    Réponses: 4
    Dernier message: 03/01/2011, 10h57
  2. Mettre une image en Background d'un JPanel et d'une JList
    Par diabli73 dans le forum Composants
    Réponses: 8
    Dernier message: 29/01/2010, 15h35
  3. mettre une image en background d'une jsp
    Par john_wili dans le forum Struts 1
    Réponses: 7
    Dernier message: 27/10/2009, 16h02
  4. [FTP] Code pour mettre une image en background
    Par Link14 dans le forum Langage
    Réponses: 2
    Dernier message: 24/02/2006, 21h10
  5. code HTML pour mettre une image en background dans un menu
    Par Link14 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 16/10/2005, 12h11

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