Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : ouvrir un fichier et son application [ Divers / Général ] (nanaou)

samedi 8 septembre 2007 à 17:03:26 | ouvrir un fichier et son application

nanaou

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"?

samedi 8 septembre 2007 à 19:36:08 | Re : ouvrir un fichier et son application

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
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

samedi 8 septembre 2007 à 19:51:09 | Re : ouvrir un fichier et son application

Twinuts

Membre Club Administrateur CodeS-SourceS
Salut,

utilise lapi java de openoffice et également fait un tour sur ce thread

http://www.developpez.net/forums/archive/index.php/t-66777.html




------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO

mercredi 12 septembre 2007 à 21:06:01 | Re : ouvrir un fichier et son application

nanaou

Réponse acceptée !
J'ai trouvé la solution à mes problèmes.

Liens utiles :
    http://api.openoffice.org/docs/DevelopersGuide/OfficeBean/OfficeBean.xhtml
    http://www.developpez.net/forums/archive/index.php/t-66777.html

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)

        String[] argsn = new String[] {
                "uno:socket,host=127.0.0.1,port=8100;urp;StarOffice.ServiceManager",
                "file:///C:/exemple.ott" };
        try {
            XComponentContext xcomponentcontext =
                com.sun.star.comp.helper.Bootstrap.createInitialComponentContext(null); // 1
            
            XMultiComponentFactory xmulticomponentfactory =    xcomponentcontext.getServiceManager(); // 2
            
            Object objectUrlResolver =
                xmulticomponentfactory.createInstanceWithContext("com.sun.star.bridge.UnoUrlResolver",
                        xcomponentcontext); // 3
            
            XUnoUrlResolver xurlresolver =
                (XUnoUrlResolver)UnoRuntime.queryInterface(XUnoUrlResolver.class, objectUrlResolver); // 4
        
            Object objectInitial = xurlresolver.resolve(argsn[0]); // 5
                
            xmulticomponentfactory = (XMultiComponentFactory) UnoRuntime.queryInterface(
                    XMultiComponentFactory.class, objectInitial); // 6
            
            XPropertySet xpropertysetMultiComponentFactory = (XPropertySet) UnoRuntime.queryInterface(
                    XPropertySet.class, xmulticomponentfactory); // 7
            
            Object objectDefaultContext =
                xpropertysetMultiComponentFactory.getPropertyValue("DefaultContext"); // 8
            
            xcomponentcontext = (XComponentContext)UnoRuntime.queryInterface(
                    XComponentContext.class, objectDefaultContext); // 9
            
            Object xdesktop =
                xmulticomponentfactory.createInstanceWithContext("com.sun.star.frame.Desktop",
                        xcomponentcontext); // 10
            
            XComponentLoader xcomponentloader = (XComponentLoader) UnoRuntime.queryInterface(
                    XComponentLoader.class, xdesktop); // 11
            
            XComponent xcomp = xcomponentloader.loadComponentFromURL(
                    argsn[1], "_blank", 0, new PropertyValue[0]); // 12
            
            /* MAJ du champ nommé "exemple" */
            setUserFieldExemple(xcomp);
            
            System.exit(0);
        }
        catch(Exception exception) {
            System.err.println(exception);
        }
        catch(java.lang.Exception e) {
            e.printStackTrace();
        }
    }

    // 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);

        XTextFieldsSupplier xTextFieldsSupplier = (XTextFieldsSupplier) UnoRuntime.queryInterface(XTextFieldsSupplier.class, textDoc);
        XEnumerationAccess xEnumeratedFields = xTextFieldsSupplier.getTextFields();
        XNameAccess xNamedFieldMasters = xTextFieldsSupplier.getTextFieldMasters();
        String sName = "com.sun.star.text.FieldMaster.User." + "exemple";
                  
        // 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 :
 *
 * <prop oor:name="ooSetupConnectionURL" oor:type="xs:string">
 * <value>socket,host=localhost,port=8100;urp;StarOffice.ServiceManager</value>
 * </prop>
 *
 * Juste après cette ligne-ci :
 *
 * <node oor:name="Office">


jeudi 3 janvier 2008 à 13:41:18 | Re : ouvrir un fichier et son application

nicoss68

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", "<b>test</b>");

Malheureusment, le HTML n'est pas interpreté dans le document OO.

Quelqu'un a eu ce probleme?





Cette discussion est classé dans : fichier, ouvrir, application, runtime, openoffice


Répondre à ce message

Sujets en rapport avec ce message

ouvrir un fichier d'aide en html [ par jerame ] Bonjour à tous,Avant tout, je tenais à vous dire que c'est la troisième fois que je viens sur codes Sources pour demander de l'aide, et j'ai toujours Ouvrir un fichier externe (Runtime, exec..) [ par olkis ] Bonjour à tous j'essaie d'ouvrir un fichier externe avec le code suivant, mais le programme sort le catch directement... je comprends pas !! pourtant Ouvrir un fichier local , via une application Web [ par Panneau ] J'ai mon fichier en local sur mon pc1. Je veux le charger sur une BD de mon pc2 via une appli web gérée par Tomcat sur mon PC2. Comment faire? Merci Ouvrir fichier [ par didoux95 ] Bonjour à tous.J'aimerais savoir comment est ce que jeux ouvrir un fichier avec mon application (a partir du menu "ouvrir avec").J'ai déjà essayé mais Runtime + raccourcis *.lnk [ par dvoraky ] Bonjour tout le monde!Bon, voilà, je suis en train de développer une petite application utilisant SWT.Le but de mon application est de lancer des racc choisir entre FTP et mail [ par deiz21 ] Bonjour tout le monde,voila, je devrai implementer une application qui a pour but d'envoyer un fichier à une autre instance de cette même application InvocationTargetException [ par biboobib ] Slt a vous .. je suis entrain de Empaqueter mon application swing avec un petit logiciel .. et l'or de l'execution il m'affiche une exception..java.la ouvrir une feuille précise d'un fichier excel [ par salim15 ] bonjour tout le monde,j'aimerais ouvrir  une feuille précise d'un fichier excel  avec java,pour le moment j'arrive juste à ouvrir le fichier excel mai ouvrir un fichier word avec un click sur un bouton [ par tunisoise ] Bonjour ,je veux faire un programme en java qui permet d'ouvrir un fichier déja existant tout en cliquant sur un bouton dans une interface .Est ce que enregistrement fichier sur poste client [ par Moucave ] Bonjour à tous! Voici ma question. J'ai une application (côté serveur) qui me crée un fichier excel en "c:/monfichier.xls" or le problème est que si


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,515 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.