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);
} |
Partager