Document im Hintergrund erstellen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Albert123
Beiträge: 2
Registriert: Fr, 02.08.2013 10:56

Document im Hintergrund erstellen

Beitrag von Albert123 »

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:

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

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
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Document im Hintergrund erstellen

Beitrag von balu »

Hallo Albert,

nun, ich weiss ja nicht wie Du gesucht hast, Suchbegriff?, aber ich geb dir dennoch mal einen Link der dir wahrscheinlich schon mal weiterhelfen wird, wegen Hintergrund.
Weis jemand, wo ich eine Dokumentation/Liste möglicher Parameter und ihrer Bedeutung finden kann?
Such hier mal nach "xray" und/oder "mri". Ferner schau dir mal den Sticky in dieser Rubrik "Informationen zur StarBasic-Programmierung" an.


Viel Glück und Erfolg.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Albert123
Beiträge: 2
Registriert: Fr, 02.08.2013 10:56

Re: Document im Hintergrund erstellen

Beitrag von Albert123 »

Der Link hat mir sehr geholfen, Danke für die schnelle Antwort :D

Ich habe vorher mit Begriffen wie „Hintergrund“ und „unsichtbar“ gesucht.

Und auch danke für die anderen Suchbegriffe, wird aber noch etwas dauern, bis ich mich da reingefundn habe.

mfG Albert
Antworten