cs_nanaou
Messages postés30Date d'inscriptionlundi 4 septembre 2006StatutMembreDernière intervention21 mars 2010
-
8 sept. 2007 à 17:03
cs_nicoss68
Messages postés1Date d'inscriptionjeudi 3 janvier 2008StatutMembreDernière intervention 3 janvier 2008
-
3 janv. 2008 à 13:41
Bonjour,
je souhaite ouvrir un fichier openOffice afin d'y insérer des valeurs de champs contenues dans mon application.
Cependant, pour ouvrir l'application il me suffit de faire :
try {
Process p = null;
Runtime r = Runtime.getRuntime();
p = r.exec("C:\\Program Files\\OpenOffice.org 2.2\\program\\swriter.exe" );
int x = p.waitFor();
}
catch(Exception e) {
e.printStackTrace();
}
Par contre comment peut-on ouvrir le fichier "document.ott"?
Voici un exemple de comment accéder aux champs utilisateur d'un document openOffice :
/**
* Cette classe permet de charger un document et de récupérer les champs utilisateur.
* Elle modifie le contenu du champ nommé "exemple" par le texte "champ modifié".
*/
public class Exemple {
/**
* @param args
*/
public static void main(String[] args) {
// Chargement du document (en local : 127.0.0.1)
// Exemple de méthode pour modifier un champ
public static void setUserFieldExemple(XComponent xcomp) {
// getting the text document object
XTextDocument textDoc = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, xcomp);
// Accès au field master
try {
Object fieldMaster = xNamedFieldMasters.getByName(sName);
// On récupère l'interface XPropertySet pour modifier le contenu du champ
XPropertySet xPropertySet = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, fieldMaster);
// Modification du contenu
xPropertySet.setPropertyValue("Content", "champ modifié");
}
catch(NoSuchElementException ...
// Il faut ensuite rafraichir la collection de champs texte
XRefreshable xRefreshable = (XRefreshable) UnoRuntime.queryInterface(XRefreshable.class, xEnumeratedFields);
xRefreshable.refresh();
}
}
Cependant, il faut auparavant faire une mise a jour d'un fichier d'openOffice :
OpenOffice écoute sur le port 8100.
* On spécifie cela dans le fichier OOoBasePath\share\registry\data\org\openoffice\Setup.xcu.
* Il faut ajouter les lignes suivantes :
*
*
* <value>socket,host=localhost,port=8100;urp;StarOffice.ServiceManager</value>
*
*
* Juste après cette ligne-ci :
*
* <node oor:name="Office">
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 8 sept. 2007 à 19:36
Salut,
Hum ton truc est loin d'être portable : si un gars là installer autre part que dans le Program Files du disque C:, ou s'il a linux, ca marche plus !
______________________________________
DarK Sidious
cs_nicoss68
Messages postés1Date d'inscriptionjeudi 3 janvier 2008StatutMembreDernière intervention 3 janvier 2008 3 janv. 2008 à 13:41
bonjour,
Ceci fonctionne tres bien, mais il me reste toujours un probleme.
La string que je souhaiterais inserer est au format HTML:
xPropertySet.setPropertyValue("Content", "test");
Malheureusment, le HTML n'est pas interpreté dans le document OO.