Bonjour,
j'ai fai un fonction qui doit copie un fichier ods en changent le format en zip
mais ça ne marche pas, avec les fichier ods . j'ai tester la meeme fonction avec les fichier odt ça marche bien.
Si qlq un peut regarder ma fonction et me dire c'est ou le probleme, ça serais cool.
Voici le code
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
 
/**
*urrlDoc  nom du doc   en .ods
*urlSorti repertoire de sortie
*NomDocSortie nom de sortie du fichier en .zip
*/
public void copieDoc(String urrlDoc, String urlSorti,String NomDocSortie) throws Exception{
		
		System.out.println("******** DEBUT TRAITEMENT Copie Doc ********");
        OOoConnect OOo = new OOoConnect();
        // connection au service de OOo
        XMultiComponentFactory xMCF = OOo.useConnection();
        XDesktop xDesktop = OOo.getXDesktop();
        XComponentLoader xComponentLoader = (XComponentLoader)UnoRuntime.queryInterface(XComponentLoader.class, xDesktop);
        
        // Ouvrir un doc existant
        PropertyValue[] prop = new PropertyValue[1];
        prop[0] = new PropertyValue();
        prop[0].Name = "Hidden";
        prop[0].Value = Boolean.TRUE;
        
        
        XComponent xComp = xComponentLoader.loadComponentFromURL("file:///"+urrlDoc, "_blank", 0, prop);
        // Charger l'objet XTextDocument
        XTextDocument xTextDoc = (XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, xComp);
        
        //creation du doc ou on met les propietes
        File data = new File(urlSorti+"testOOo.data");
        if (!(data.exists())) {data.createNewFile(); }
        FileInputStream fis = new FileInputStream(data);
        Properties pdata = new Properties();
        pdata.load(fis);
        fis.close();
        
        XReplaceable xReplace = (XReplaceable)UnoRuntime.queryInterface(XReplaceable.class, xTextDoc);
        XReplaceDescriptor xRD = xReplace.createReplaceDescriptor();
       
        Enumeration enum8 = pdata.keys();
        while (enum8.hasMoreElements()){
        	
               String key = (String)enum8.nextElement();
               String value = pdata.getProperty(key);
               
               xRD.setSearchString(key);
               xRD.setReplaceString(value);
         
               xReplace.replaceAll(xRD);
        }//fin while 
             
        // Enregistrer dans un nouveau fichier avec ses propietes
        PropertyValue[] filterProperties = new PropertyValue[1];
        filterProperties[0] = new PropertyValue();
        filterProperties[0].Name ="Hidden";;
        filterProperties[0].Value = "";
     
        XStorable xStore = (XStorable)UnoRuntime.queryInterface(XStorable.class, xComp);
        xStore.storeToURL("file:///"+urlSorti+NomDocSortie, filterProperties);
         
        // Fermer le document
        XCloseable xClose = (XCloseable)UnoRuntime.queryInterface(XCloseable.class, xComp);
        xClose.close(true);
		
        //Fermer l'instance OOo
         xDesktop.terminate();
 
       System.out.println("******** FIN DU TRAITEMENT Copi DOc********");
       System.exit(2);
       
	   }
le programme bloque au niveau de cette ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
  XReplaceDescriptor xRD = xReplace.createReplaceDescriptor();
Merci d'avance