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] Personnaliser un entete


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 44
    Par défaut [XSL-FO] Personnaliser un entete
    Bonjour,

    Je dois generer un pdf a partir de xsl/xml. Mon pdf contient une page de garde obligatoire, une page facultative qui s'affiche si on a coché une option, la premiere page du "vrai" pdf et les autres.

    Mon soucis est comment définir ma page-sequence-master pour que le premier entete ne s'affiche que sur la deuxième page du pdf.

    J'ai défini 4 simple-page-master. je voudrai réaliser un test sur ma variable en disant si elle est ok alors pas d'entete sur les 4 premieres pages du pdf sinon pas d'entente sur les 3 premieres.

    Est-ce possible ?
    Si oui, pouvez-vous m'aider ?
    En vous remerciant

    [modéré par GrandFather - ajout du tag dans le titre]

  2. #2
    Membre éclairé
    Inscrit en
    Février 2004
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 102
    Par défaut
    Salut,

    Je crois qu'il ne faut pas que tu essaies de faire un seul masque pour toutes tes pages car réaliser de telles conditions me paraît difficile.
    Je te conseille plutôt de créer une page par "type" de page...

    Quel processeur utilises tu pour générer ton pdf : Ça peut avoir son importance.

    A+

  3. #3
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 44
    Par défaut
    J'utilise FOP en fait, qui a partir du XML et du XSL genere ce qu'il faut.
    Qu'entends tu par "type de page" ?

  4. #4
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 44
    Par défaut
    Je précise ma question avec du code
    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
    <fo:simple-page-master master-name="first"
    										page-height="29.7cm" 
    										page-width="21.0cm"
    										margin-top="1.0cm" 
    										margin-bottom="1.0cm" 
    										margin-left="1.0cm" 
    										margin-right="1.0cm">
    				<fo:region-body margin-top="2.5cm" margin-bottom="2.5cm"/>
    				<fo:region-before extent="2.5cm" region-name="before-first"/>
    				<fo:region-after extent="2cm"/>
    			</fo:simple-page-master>
     
    			<fo:simple-page-master master-name="rest"
    										page-height="29.7cm" 
    										page-width="21.0cm"
    										margin-top="1.0cm" 
    										margin-bottom="1.0cm" 
    										margin-left="1.0cm" 
    										margin-right="1.0cm">
    				<fo:region-body margin-top="3.5cm" margin-bottom="2.5cm"/>
    				<fo:region-before extent="3.5cm" region-name="before-rest"/>
    				<fo:region-after extent="2cm"/>
    			</fo:simple-page-master>
     
     
    		    	<fo:page-sequence-master master-name="document">
    		      			<fo:repeatable-page-master-alternatives>			        	
     
    			        		<fo:conditional-page-master-reference page-position="first"
    			          			master-reference="first"/>
    			        		<fo:conditional-page-master-reference page-position="rest"
    			          			master-reference="rest"/>
    		      			</fo:repeatable-page-master-alternatives>
    		    	</fo:page-sequence-master>
    <fo:page-sequence master-reference="document">
     
    			<!--	******************************************** 
    						Entête du document
    					******************************************** -->
     
     
    		<fo:static-content flow-name="before-firstbefore-first">
    			<xsl:call-template name="enteteFirstPage"/>
    		</fo:static-content> 
     
    		<fo:static-content flow-name="before-rest">
    			<xsl:call-template name="enteteOtherPage"/>
    		</fo:static-content> 
    ...
    J'aimerai savoir s'il est possible de traffiquer fo-page sequence afin de mettre sur les 2 premieres pages enteteFirstPage, de faire un test sur la troisieme en fonction d'une variable pour mettr eou non un entete, puis de laisser les autres pages a enteteOtherPage.

    Est-ce que c'est possible ?

  5. #5
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 44
    Par défaut
    Pouvez-vous me dire s'il y a d'autre chose que first, rest, any, last dans l'attribut page-position ?

  6. #6
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 44
    Par défaut
    J'ai trouvé un premier élément de réponse en utilisant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <fo:page-sequence-master master-name="document">
    		    	<fo:repeatable-page-master-reference master-reference="first"
      							maximum-repeats="2"/>
     				<fo:repeatable-page-master-alternatives maximum-repeats="no-limit">
      					<fo:conditional-page-master-reference master-reference="rest"/>
     				</fo:repeatable-page-master-alternatives>
    		    </fo:page-sequence-master>
    J'arrive à décaler les entetes.
    Par contre je peux pas mettre de bloc <xsl:if> ??
    Pour mettre maximum-repeats à 2 ou 3 selon la valeur d'un noeud ??

  7. #7
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Bonjour,

    ce n'est pas un xsl:if qu'il te faut, c'est un xsl:choose et une variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <xsl:variable name="maxRepeat">
      <xsl:choose>
        <xsl:when test="ton_test_de_variable">2</xsl:when>
        <xsl:otherwise>3</xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
    <fo:page-sequence-master master-name="document"> 
      <fo:repeatable-page-master-reference master-reference="first" 
                           maximum-repeats="{$maxRepeat}"/>
    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

  8. #8
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 44
    Par défaut
    impeccable

    Merci beaucoup

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

Discussions similaires

  1. alterner les couleurs dans un tableau avec xsl
    Par Eithelgul dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 03/05/2015, 23h29
  2. Personnalisation formulaire et XSL
    Par Magicmodjo dans le forum SharePoint
    Réponses: 5
    Dernier message: 30/10/2008, 11h59
  3. Entete avec xsl
    Par paty03 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 05/03/2008, 09h51
  4. Réparation table/entête endommagée
    Par tbesrour dans le forum Paradox
    Réponses: 15
    Dernier message: 27/11/2007, 10h42
  5. [XSLT] inclure du XSL dans une balise html
    Par iaa dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 05/08/2002, 15h57

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