flo114
Messages postés3Date d'inscriptionvendredi 3 mars 2006StatutMembreDernière intervention 7 octobre 2008
-
29 sept. 2008 à 14:21
flo114
Messages postés3Date d'inscriptionvendredi 3 mars 2006StatutMembreDernière intervention 7 octobre 2008
-
30 sept. 2008 à 08:43
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:
Driver driver = new Driver();
driver.setRenderer(Driver.RENDER_PDF);
driver.setOutputStream(new java.io.FileOutputStream(fichierPDF));
Result resultat = new SAXResult(driver.getContentHandler());
Sur cette dernière ligne cette exception est générée :
javax.xml.transform.TransformerConfigurationException: javax.xml.transform.TransformerException: java.net.MalformedURLException: unknown protocol: c
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").
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 :
flo114
Messages postés3Date d'inscriptionvendredi 3 mars 2006StatutMembreDernière intervention 7 octobre 2008 30 sept. 2008 à 08:43
Merci de ta supposition indiana_jules mais apparament ce n'était pas ca.
En fait j'ai du préciser le protocole devant l'url.
Donc à ma création du fichier XML j'ai uniquement du lui passer le
chemin, sans rien de plus (donc avec un "System.getProperty("user.dir")". Mais lorsque je vais chercher mon fichier
XML en faisant un "new StreamSource(fichierXML)" je dois lui mettre le
protocole "file:" devant.
Maintenant je ne sais pas pourquoi quand il n'y a pas d'espace dans le
chemin ça marche sans protocole mais au moins avec le protocole devant
ça marche dans tous les cas.