Moi!
Minulla on siis java-ohjelma, josta haluaisin saada open officen käyntiin ja mieluiten vielä niin, että uuden dokumentin alkuun tulisi tietty ohjelman määräämä teksti. Onko mitään keinoa?
Kiitos avusta!
Javalla open office käyntiin
3
528
Vastaukset
- keksa1
voisit kaynnistaa openoffice.exen vaikka javan system tai exec-komennoilla.
sitten tarkistat openoffice.exen voiko sille antaa parametreja esim.
openoffice.exe tiedosto.doc "Terve kaikki!"- Foobarfoo
Oli sevverran mielenkiintoinen kysymys et oli pakko kokeilla ja tehdä oma esimerkkiohjelma (joka löytyy seuraavasta viestistä). Joudut melko varmasti muokkaan ohjelmaan mut toivottavasti pääset edes alkuun. Seuraavat jarrit tarvitaan: ridl.jar, unoloader.jar, jurt.jar, juh.jar, unoil.jar ja bootstrapconnector.jar
- foobarfoo
Foobarfoo kirjoitti:
Oli sevverran mielenkiintoinen kysymys et oli pakko kokeilla ja tehdä oma esimerkkiohjelma (joka löytyy seuraavasta viestistä). Joudut melko varmasti muokkaan ohjelmaan mut toivottavasti pääset edes alkuun. Seuraavat jarrit tarvitaan: ridl.jar, unoloader.jar, jurt.jar, juh.jar, unoil.jar ja bootstrapconnector.jar
import ooo.connector.BootstrapSocketConnector;
import com.sun.star.beans.PropertyValue;
import com.sun.star.comp.helper.BootstrapException;
import com.sun.star.text.XText;
import com.sun.star.text.XTextDocument;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XComponentContext;
import com.sun.star.util.XCloseable;
import com.sun.star.lang.XComponent;
import com.sun.star.lang.XMultiComponentFactory;
import com.sun.star.frame.XComponentLoader;
import com.sun.star.frame.XStorable;
public class OOTest {
public static void main(String[] args) {
try {
// Luodaan yhteys sofficeen
String sofficeLocation = "/usr/lib/openoffice/program/";
XComponentContext xcontext = BootstrapSocketConnector.bootstrap(sofficeLocation);
XMultiComponentFactory xMCF = xcontext.getServiceManager();
Object oDesktop = xMCF.createInstanceWithContext(
"com.sun.star.frame.Desktop", xcontext);
XComponentLoader xComponentLoader = (XComponentLoader) UnoRuntime
.queryInterface(com.sun.star.frame.XComponentLoader.class,
oDesktop);
// Tiedoston luonti
XComponent document = xComponentLoader.loadComponentFromURL("private:factory/swriter",
"_blank", 0, new PropertyValue[0]);
XTextDocument textDocument = (XTextDocument) UnoRuntime
.queryInterface(com.sun.star.text.XTextDocument.class,
document);
XText teksti = textDocument.getText();
// Lisataan tekstia
teksti.insertString(teksti.getEnd(), "TERVE MAAILMA!!1", false);
//Tallennetaan
XStorable xStorable = (XStorable) UnoRuntime.queryInterface(
XStorable.class, document);
PropertyValue[] storeProps = new PropertyValue[0];
xStorable.storeAsURL("file:///tmp/java_testi.odt", storeProps);
//Suljetaan
XCloseable xcloseable = (XCloseable) UnoRuntime.queryInterface(
XCloseable.class, document);
xcloseable.close(false);
} catch (BootstrapException e) {
e.printStackTrace();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Tänään pyörit ajatuksissa enemmän, kun erehdyin lukemaan palstaa
En saisi, silti toivon että sinä vielä palaat ja otetaan oikeasti selvää, hioituuko särmät ja sulaudummeko yhteen. Vuod225154- 254338
- 272461
- 342244
- 371998
- 151918
En ole koskaan kokenut
Ennen mitään tällaista rakastumista. Tiedän että kaipaan sinua varmaan loppu elämän. Toivottavasti ei tarvitsisi vain ka191587- 121521
Voi ei! Jari Sillanpää heitti keikan Helsingissä - Hämmästyttävä hetki lavalla...
Ex-tangokuningas on parhaillaan konserttikiertueella. Hän esiintyi Savoy teatterissa äitienpäivänä. Sillanpää jakoi kons211247Kerranki asiat oikein
Ilkka ja muut pienpuolueeet...teitte hyvän työn kun valitsitte pätevän henkilön virkaan eikä kepulle passelia!! Jatkakaa101174