[Résolu][Java] Enregistrer au format OpenOffice Standard

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
error
Membre OOrganisé
Membre OOrganisé
Messages : 83
Inscription : 22 août 2006 09:10
Localisation : Suisse

[Résolu][Java] Enregistrer au format OpenOffice Standard

Message par error »

Bonjour,
j'ai un programme qui créer un fichier Writer à partir d'un modèle, et j'aimerai l'enregistrer au format *.odt.
Je pensais qu'il suffisait de faire un export comme pour vers un PDF ou un fichier MS Word 97 avec :

Code : Tout sélectionner

		XStorable DocSave = (XStorable)UnoRuntime.queryInterface(XStorable.class, Document);
		
		PropertyValue[] storeProps = new PropertyValue[1];
        storeProps[0] = new PropertyValue();
        storeProps[0].Name = "FilterName";
        storeProps[0].Value = "MS Word 97";
et qu'en mettant les propriétés à vide, il prendrait par défaut l'extension *.odt, mais non.

J'ai écrit ceci:

Code : Tout sélectionner

XStorable DocSave = (XStorable)UnoRuntime.queryInterface(XStorable.class, Document);
		
		PropertyValue[] storeProps = new PropertyValue[0];
		try 
		{
			DocSave.storeAsURL(StoreURL, storeProps);
		}
		catch (com.sun.star.io.IOException e) 
		{
			e.printStackTrace();
		}   
(je précise que StoreURL = "file:///C:\\temp\\Result.odt" est déjà déclaré plus haut dans mon code)
et je reçois l'erreur suivante:

Code : Tout sélectionner

com.sun.star.task.ErrorCodeIOException: 
	at com.sun.star.lib.uno.environments.remote.Job.remoteUnoRequestRaisedException(Job.java:275)
	at com.sun.star.lib.uno.environments.remote.Job.execute(Job.java:141)
	at com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:377)
	at com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:346)
	at com.sun.star.lib.uno.environments.remote.JavaThreadPool.enter(JavaThreadPool.java:106)
	at com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge.sendRequest(java_remote_bridge.java:845)
	at com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge.sendRequest(java_remote_bridge.java:794)
	at com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.request(ProxyFactory.java:151)
	at com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.invoke(ProxyFactory.java:137)
	at $Proxy14.storeAsURL(Unknown Source)
Quelqu'un saurait-il m'en donner la raison? Ou la bonne manière de procéder?
Merci d'avance
Dernière modification par error le 25 sept. 2006 16:37, modifié 1 fois.
WinXP SP3 || OOo 2.4.1
bm92
ManitOOu
ManitOOu
Messages : 2562
Inscription : 26 nov. 2005 13:42

Message par bm92 »

je précise que StoreURL = "file:///C:\\temp\\Result.odt" est déjà déclaré plus haut dans mon code
Ce n'est pas une URL syntaxiquement correcte. Et la partie adresse n'est pas non plus une adresse Windows correcte.

C:\temp\Result.odt donne comme URL : file:///C:/temp/Result.odt

Pour la méthode de stockage, voir les exemples Java du Developer's Guide, chapitre 6.1.5 et 7.2.2.
error
Membre OOrganisé
Membre OOrganisé
Messages : 83
Inscription : 22 août 2006 09:10
Localisation : Suisse

Message par error »

Bien vu, le problème venait effectivement de là...

Mais je dois avouer que je n'ai jamais vraiment compris quand est-ce qu'il faut mettre des \\ plutôt que des / ou le contraire... :evil:

En tout cas merci beaucoup. A présent tout fonctionne.
A+
WinXP SP3 || OOo 2.4.1