Bonjour tout le monde.
alors voila mon problème. Je génère des fichier pdf avec la librairie FOP, j'ai donc crée au préalable une feuille de style XSL-FO et mon fichier XML se génère automatiquement, grâce à JDOM.
Mon problème vient que, suivant l'emplacement du programme sur le disque dur la création ne marche pas. Voici le code qui génère l'exception:
Sur cette dernière ligne cette exception est générée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Driver driver = new Driver(); driver.setRenderer(Driver.RENDER_PDF); driver.setOutputStream(new java.io.FileOutputStream(fichierPDF)); Result resultat = new SAXResult(driver.getContentHandler()); Source source = new StreamSource(fichierXML); Source style = new StreamSource(fichierXSL); TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(style); transformer.transform(source, resultat);
Après avoir testé différents emplacement, on dirait que le programme plante si dans son chemin il y a un espace (comme dans "Program Files" par exemple, ou "Documents and Settings").
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 javax.xml.transform.TransformerConfigurationException: javax.xml.transform.TransformerException: java.net.MalformedURLException: unknown protocol: c
Si l'erreur vient effectivement de là, sauriez-vous comment faire pour qu'il accepte les espaces dans le chemin ? Parce que ca serait sympa que l'utilisateur puisse choisir d'installer son programme ou il le souhaite(en particulier dans "Program Files").
Merci d'avance
PS: Pour récupérer le chemin d'ou est exécuté le programme j'utilise :
Code : Sélectionner tout - Visualiser dans une fenêtre à part String chemin = System.getProperty("user.dir" );
Partager