Seite 1 von 1

Document im Hintergrund erstellen

Verfasst: Fr, 02.08.2013 12:46
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

Re: Document im Hintergrund erstellen

Verfasst: Fr, 02.08.2013 14:27
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

Re: Document im Hintergrund erstellen

Verfasst: Sa, 03.08.2013 14:09
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