Document im Hintergrund erstellen
Verfasst: Fr, 02.08.2013 12:46
Hallo,
ich versuche gerade die Funktionen von Open Office innerhalb eines Java-programmes zu nutzen, um automatisch Dokumente zu erstellen.
Bis jetzt bin ich so weit, dass ich Textdokumente (.odt) erzeugen, beschreiben und speichern kann.
Mein bisheriger Code sieht so aus:
Es wird also ein Dokument erzeugt, mit dem Text „blabla“ beschreiben und als „test.odt“ gespeichert.
Allerdings öffnet sich beim ausführen des codes kurz ein OO-Fenster.
Kann mir jemand einen Tipp geben, wie ich den ganzen Prozess „unsichtbar“ mache und in den Hintergrund verlagern kann?
Außerdem scheint der Prozess nach dem speichern des Dokuments nicht zu beenden und läuft solange weiter, bis OO manuell gestartet und wieder beendet wurde.
Beide Probleme hängen sicherlich mit den String-Parametern zusammen, die an die Methoden
createInstanceWithContext() und oadComponentFromURL() übergeben werden.
Weis jemand, wo ich eine Dokumentation/Liste möglicher Parameter und ihrer Bedeutung finden kann?
Das sind jetzt offensichtlich ein Haufen Anfänger-Fragen, aber die Suchfunktion war leider nicht besonders ergiebig.
Ich bedanke mich also vornehmlich und hoffe auf baldige Antwort.
mfG Albert
ich versuche gerade die Funktionen von Open Office innerhalb eines Java-programmes zu nutzen, um automatisch Dokumente zu erstellen.
Bis jetzt bin ich so weit, dass ich Textdokumente (.odt) erzeugen, beschreiben und speichern kann.
Mein bisheriger Code sieht so aus:
Code: Alles auswählen
XComponentContext con = Bootstrap.bootstrap();
XMultiComponentFactory fak = con.getServiceManager();
Object desk = fak.createInstanceWithContext(
"com.sun.star.frame.Desktop",con);
XComponentLoader loader =
(XComponentLoader)UnoRuntime.queryInterface(
XComponentLoader.class, desk);
XComponent doc = loader.loadComponentFromURL(
"private:factory/swriter", "_blank", 0,new PropertyValue[0]);
XTextDocument tdoc =(XTextDocument)
UnoRuntime.queryInterface(XTextDocument.class, doc);
XText text = tdoc.getText();
text.insertString(text.getEnd(),
"blabla",
false);
XStorable stor =(XStorable)UnoRuntime.queryInterface(XStorable.class, doc );
PropertyValue[] propertyValue = new PropertyValue[ 1 ];
propertyValue[0] = new PropertyValue();
propertyValue[0].Name = "FilterName";
propertyValue[0].Value =true;
String outUrl= "file:///" +new File(
"test.odt"
).getAbsolutePath().replace( '\\', '/' );
stor.storeAsURL(outUrl,propertyValue );
XCloseable close = (XCloseable) UnoRuntime.queryInterface(XCloseable.class, doc);
close.close(false);
System.exit(0);
Allerdings öffnet sich beim ausführen des codes kurz ein OO-Fenster.
Kann mir jemand einen Tipp geben, wie ich den ganzen Prozess „unsichtbar“ mache und in den Hintergrund verlagern kann?
Außerdem scheint der Prozess nach dem speichern des Dokuments nicht zu beenden und läuft solange weiter, bis OO manuell gestartet und wieder beendet wurde.
Beide Probleme hängen sicherlich mit den String-Parametern zusammen, die an die Methoden
createInstanceWithContext() und oadComponentFromURL() übergeben werden.
Weis jemand, wo ich eine Dokumentation/Liste möglicher Parameter und ihrer Bedeutung finden kann?
Das sind jetzt offensichtlich ein Haufen Anfänger-Fragen, aber die Suchfunktion war leider nicht besonders ergiebig.
Ich bedanke mich also vornehmlich und hoffe auf baldige Antwort.
mfG Albert