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 :

Gestion multi page pour PDF [XSL-FO]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2004
    Messages
    218
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 218
    Points : 91
    Points
    91
    Par défaut Gestion multi page pour PDF
    Bonjour,

    Je dois générer un pdf avec XSL-FO et comme celui-ci est composé de plusieurs pages je me demandais s'il était possible d'avoir un fichier master.xls référençant les autres fichiers xls (page1.xls, page2.xls, etc)

    de sorte qu'en ouvrant le master les autres pages serait générées et formerait ensuite un seul et même fichier pour la transformation en pdf ?

    Est ce possible ? si oui une piste de code ou un exemple serait le bienvenu.

    MErci beaucoup

  2. #2
    Membre actif
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2007
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 199
    Points : 297
    Points
    297
    Par défaut
    xsl:include ou xsl:import devrait répondre à ton besoin.
    "Chuck Norris a déjà compté jusqu'à l'infini. Deux fois."

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2004
    Messages
    218
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 218
    Points : 91
    Points
    91
    Par défaut
    Merci Caballo,

    Je suppose que je dois référencé le <xsl:template match="/xxxxx"/> pour chacune des pages à inclure ou le simple fait de le déclarer dans la page master.xls suffira ?

  4. #4
    Membre actif
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2007
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 199
    Points : 297
    Points
    297
    Par défaut
    Je te propose de consulter cette discussion sur le site à ce sujet, ce qui te permettra de capitaliser sur le fonctionnement de ces 2 formes d'import :

    http://www.developpez.net/forums/d31...rt-vs-include/
    "Chuck Norris a déjà compté jusqu'à l'infini. Deux fois."

  5. #5
    Membre régulier
    Inscrit en
    Juillet 2004
    Messages
    218
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 218
    Points : 91
    Points
    91
    Par défaut
    Bonjour,

    Merci Caballo pour le lien, je pense avoir appliqué les consignes pour l'include dans mon fichier master masi je n'ai qu'un page qui s'affiche dans mon PDF , ce n'at que la page 2 et je n'ai pas la page 1. Ci dessous le code utilisé :

    Page Master.xsl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?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"
    	xmlns:java="http://xml.apache.org/xslt/java" exclude-result-prefixes="java">
     
    	<xsl:include href="page1.xsl"/>
    	<xsl:include href="page2.xsl"/>
     
     
     
    </xsl:stylesheet>
    page1.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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    <?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"
    	xmlns:java="http://xml.apache.org/xslt/java" exclude-result-prefixes="java">
     
    	<xsl:output method="xml" indent="yes" />
    	<xsl:template match="/list">
    		<fo:root>
    			<!-- Déclaration de la mise en page -->
    			<fo:layout-master-set>
    				<fo:simple-page-master master-name="Rapport-Notation" margin="2cm">
    					<fo:region-body margin="1.5cm 0 2cm 0" column-count="1"/>
    				</fo:simple-page-master>
    			</fo:layout-master-set>
     
    			<fo:page-sequence master-reference="Rapport-Notation">
    				<fo:flow flow-name="xsl-region-body">
    					<fo:table>
    						<fo:table-body>
    							<fo:table-row>
    								<fo:table-cell text-align="center" border-bottom-style="solid">
    									<fo:block >PAGE 1</fo:block>
    								</fo:table-cell>
    							</fo:table-row>
    						</fo:table-body>
    					</fo:table>
    				</fo:flow>
    			</fo:page-sequence>
    		</fo:root>
    	</xsl:template>
     
     
     
    </xsl:stylesheet>
    page2.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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    <?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"
    	xmlns:java="http://xml.apache.org/xslt/java" exclude-result-prefixes="java">
     
    	<xsl:output method="xml" indent="yes" />
    	<xsl:template match="/list">
    		<fo:root>
    			<!-- Déclaration de la mise en page -->
    			<fo:layout-master-set>
    				<fo:simple-page-master master-name="Rapport-Notation" margin="2cm">
    					<fo:region-body margin="1.5cm 0 2cm 0" column-count="1"/>
    				</fo:simple-page-master>
    			</fo:layout-master-set>
     
    			<fo:page-sequence master-reference="Rapport-Notation">
    				<fo:flow flow-name="xsl-region-body">
    					<fo:table>
    						<fo:table-body>
    							<fo:table-row>
    								<fo:table-cell text-align="center" border-bottom-style="solid">
    									<fo:block >PAGE 2</fo:block>
    								</fo:table-cell>
    							</fo:table-row>
    						</fo:table-body>
    					</fo:table>
    				</fo:flow>
    			</fo:page-sequence>
    		</fo:root>
    	</xsl:template>
     
     
     
    </xsl:stylesheet>
    Ai-je commis une erreur ?

    Merci pour l'aide

  6. #6
    Membre régulier
    Inscrit en
    Juillet 2004
    Messages
    218
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 218
    Points : 91
    Points
    91
    Par défaut
    Bonjour,

    D'après certain forum il est impossible de créer un PDF contenant plusieurs page, du moins avec xsl-fo, est-ce vrai ?

    Comment faire pour générer un fichier PDF de plusieurs page en sachant qu'à la base j'ai un fichier xsl par page ?

    Merci pour votre aide.

  7. #7
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    La règle est un peu comme ceci : si vous avez plus qu'un template qui ont l'attribut match l'expression la même d'ordre de précision, le dernier qui s'est chargé est le vinqueur au détriment les autres. Dans votre cas, vous faites
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	<xsl:include href="page1.xsl"/>
    	<xsl:include href="page2.xsl"/>
    et par conséquence, c'est le template match="/list" de page2.xsl qui est vainqueur. Si vous renversiez l'ordre des deux xsl:include, le résultat serait "PAGE 1". Dans ce sens et avec les écriture prise, il devrait impossible de faire ce que vous entendez faire. Mais, si vous repensez l'issue et réécrivez les xsl's complètement ou presque, ce n'est pas impossible quoi que la forme finale puisse ne pas paraître très naturelle ... mais ça se discute.

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

Discussions similaires

  1. Même chose pour multi-page ?
    Par {F-I} dans le forum Référencement
    Réponses: 3
    Dernier message: 10/01/2008, 12h42
  2. multi Form pour gestion d'interface utilisateur
    Par mamouth81 dans le forum C++Builder
    Réponses: 8
    Dernier message: 19/12/2007, 18h08
  3. [FPDF] Code interprété d'une page pour creation pdf
    Par noarno dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 10/01/2007, 10h30
  4. Gestion multi-page avec un Xpath
    Par Shandler dans le forum Langage
    Réponses: 1
    Dernier message: 17/07/2006, 19h17

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