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

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    juin 2003
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2003
    Messages : 84
    Points : 46
    Points
    46
    Par défaut [FOP] Problème de path avec la génération d'un PDF
    Bonjour à tous !

    Je cherche à générer un fichier PDF à partir d'un XML et d'un XSL-FO. Dans un premier temps, j'ai ecrit mon xsl sous XML Spy. Pour centraliser mes templates, j'ai créé un autre xsl appelé common.xsl et je l'ai mis dans un dossier common.

    J'ai donc le debut de mon xsl qui ressemble à ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:fox="http://xml.apache.org/fop/extensions">
    	<xsl:import href="common/common.xsl"/>
    Le problème vient du fait que maintenant je veux générer mon pdf en java et non plus avec xml Spy. Du coup j'ai créé la méthode suivante :
    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
     private static void convertXml2Pdf(InputStream xml, InputStream xslt, File pdf)
                                    throws IOException, TransformerException
        {
            // Construct driver
            Driver driver = new Driver();
     
            //      Setup logger
            Logger logger = new ConsoleLogger(ConsoleLogger.LEVEL_INFO);
            driver.setLogger(logger);
            MessageHandler.setScreenLogger(logger);
     
            // Setup Renderer (output format)
            driver.setRenderer(Driver.RENDER_PDF);
     
            // Setup output
            OutputStream out = new FileOutputStream(pdf);
     
            try
            {
                driver.setOutputStream(out);
     
                // Setup XSLT
                TransformerFactory factory = TransformerFactory.newInstance();
                Transformer transformer = factory.newTransformer(new StreamSource(xslt));
     
                // Setup input for XSLT transformation
                Source src = new StreamSource(xml);
     
                // Resulting SAX events (the generated FO) must be piped through to FOP
                Result res = new SAXResult(driver.getContentHandler());
     
                // Start XSLT transformation and FOP processing
                transformer.transform(src, res);
            }
            finally
            {
                out.close();
            }
        }
    Cette méthode se situe dans une classe CTest qui est dans le package com.test.xslfo. Dans ce package se trouve également un dossier xsl, dans lequel j'ai mis mon xslfo, ainsi que le repertoire common qui contient common.xsl. Vous suivez ?? non ?? Bon voila l'arborescence:

    \org\test\xslfo
    |
    |_ \xsl
    | |_ \common
    | | |_comon.xsl
    | |
    | |_monxsl.xsl
    |
    |_CTest.java


    Donc mon problème vient du fait que lorsque je veux générer mon PDF, fop me lance une exception en me disant qu'il ne peut pas trouver common.xsl. En fait il ne le cherche pas dans le repertoire org.test.xslfo.xsl.common mais dans le repertoire common tout court.

    Ma question est la suivante, est ce qu'il est possible de forcer le repertoire de travail de FOP pour lui dire de travailler dans le repertoire que je veux ??

    En esperant avoir été clair

    Merci d'avance...

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    juin 2003
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2003
    Messages : 84
    Points : 46
    Points
    46
    Par défaut
    Bon pour simplifier, je voudrais juste dire à FOP tu me créé mon Pdf en te mettant dans le repertoire du XSL.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    juin 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2004
    Messages : 67
    Points : 31
    Points
    31
    Par défaut
    si c le chemin qui pose pb, pourquoi tu ne met pas tt en attendant que tu trouve une solution plus propre?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <xsl:import href="org/test/xslfo/xsl/common/common.xsl"/>

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    juin 2003
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2003
    Messages : 84
    Points : 46
    Points
    46
    Par défaut
    C ce que j'ai fait, mais j'ai pas mal de xsl, j'aurais voulu trouver un moyen qui m'eviterai d'en modifier 25 si je devais les changer des repertoires plus tard.

    Merci !

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

Discussions similaires

  1. Problème de Path avec Eclipse et Play
    Par amyster dans le forum Eclipse
    Réponses: 0
    Dernier message: 21/04/2015, 21h37
  2. Problème avec la génération de graphique
    Par Mr_asticot dans le forum Jasper
    Réponses: 3
    Dernier message: 16/02/2010, 17h37
  3. [FPDF] problème de titre avec fpdf et enregistrement du pdf créé
    Par tiger63 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 17/04/2007, 21h04
  4. Problème de cast avec l'outil de génération de requetes VS2005
    Par rabddoul dans le forum Accès aux données
    Réponses: 1
    Dernier message: 22/02/2007, 14h19
  5. [FOP] Problème avec les exemples fournis
    Par Androrion dans le forum XML/XSL et SOAP
    Réponses: 10
    Dernier message: 22/08/2006, 15h54

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