|
OpenOffice hat einen sogenannten Headless Mode indem es ohne grafische Oberfläche startet und für diverse Dienste bereit steht. Ich werde hier anhand eines PDF Converters die Funktionalität erklären.
Gestartet wird OpenOffice unter Linux im Headless Mode so:
./soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
Danach hört der Dienst auf Port 8100 auf dem lokalen Rechner.
Ich habe das Service mittels JODConverter, also einer third party library, implementiert.
Damit ist es innerhalb weniger Codezeilen möglich den Server zu nutzen:
import com.artofsolving.jodconverter.DocumentConverter;
import com.artofsolving.jodconverter.openoffice.connection.*;
import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;
import java.io.File;
import java.net.ConnectException;
import java.util.logging.Level;
import java.util.logging.Logger;
OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);
String strinputFile = "/home/gateway/test.doc";
String stroutputFile = "/home/gateway/test.pdf";
File inputFile = new File(strinputFile);
File outputFile = new File(stroutputFile);
try {
connection.connect();
} catch (ConnectException ex) {
Logger.getLogger(PDFConverter.class.getName()).log(Level.SEVERE, null, ex);
}
DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
converter.convert(inputFile, outputFile);
connection.disconnect();
Ihr könnt euch meine Beispielanwendung als Netbeansprojekt herunterladen. Damits klappt muss man den JODConverter runterladen und den entsprechenden Pfad in Netbeans anpassen. |