B
Benni87
Hallo,
ich bin derzeit an der Entwicklung einer Schnittstelle zwischen dem OpenOffice Writer und "meiner" Software. Derzeit stehe ich jedoch vor zwei Problemen, die sich bisher nicht lösen lassen haben und auch der Besuch bei dem Freund und Helfer google war bislang erfolglos.
Zunächst einmal der Programmcode der bisherigen Anwendung:
Methode startOOWriter:
Methode createXTextDocument:
Nun will ich damit 2 verschiedene Dinge machen:
1. Ich möchte das Writer-Dokument nicht als .odt abspeichern (was ich bereits könnte) sondern sofort als PDF-Datei exportieren und als solche abspeichern.
2. Ein finaler Einsatz wird das Erstellen eines Serienbriefes mittels dieser Schnittstelle sein. Die Adressdaten der Kunden kommen dabei eben von "meiner" Software. Wie ich jedoch die Serienbrief-Funktion des Writers zu meinem Nutzen verwenden kann, weiß ich noch nicht.
Ich würde mich über jegliche Hilfen bezüglich dieser beiden Punkte sehr freuen.
Vielen Dank im Vorraus
MfG
Benni
ich bin derzeit an der Entwicklung einer Schnittstelle zwischen dem OpenOffice Writer und "meiner" Software. Derzeit stehe ich jedoch vor zwei Problemen, die sich bisher nicht lösen lassen haben und auch der Besuch bei dem Freund und Helfer google war bislang erfolglos.
Zunächst einmal der Programmcode der bisherigen Anwendung:
Methode startOOWriter:
Java:
public static XComponent startOOWriter(String ooWriterPfad) {
// Bootstrapkomponenten laden
XComponentContext xCompCont = null;
try {
xCompCont = BootstrapSocketConnector.bootstrap(ooWriterPfad);
} catch(BootstrapException ex) {
ex.printStackTrace();
}
if(xCompCont != null) {
try {
// Servicemanager holen
XMultiComponentFactory xMultiComFac = xCompCont.getServiceManager();
// Desktopinstanz erstellen
Object xDesk = xMultiComFac.createInstanceWithContext(
"com.sun.star.frame.Desktop", xCompCont);
// neues Loader-Objekt mithilfe des Desktops erstellen
XComponentLoader oComponentLoader = (XComponentLoader) UnoRuntime.queryInterface(
XComponentLoader.class, xDesk);
// ein schwarzes Writer-Dokument erstellen
XComponent xComp = oComponentLoader.loadComponentFromURL(
"private:factory/swriter", // neues Dokument
"_blank", // neues Frame
0, // keine Suchflaggs
new PropertyValue[0]); // mehr nicht
return xComp;
} catch(Exception ex)
{
System.out.println("Open Office Writer konnte nicht geöffnet werden!");
System.out.println(ex.getMessage());
}
}
return null;
}
Methode createXTextDocument:
Java:
public static XTextDocument createXTextDocument(XComponent xComp) {
// Textdokument mithilfe des XComponent holen
XTextDocument xTextDoc = (XTextDocument)
UnoRuntime.queryInterface(XTextDocument.class, xComp);
return xTextDoc;
}
Nun will ich damit 2 verschiedene Dinge machen:
1. Ich möchte das Writer-Dokument nicht als .odt abspeichern (was ich bereits könnte) sondern sofort als PDF-Datei exportieren und als solche abspeichern.
2. Ein finaler Einsatz wird das Erstellen eines Serienbriefes mittels dieser Schnittstelle sein. Die Adressdaten der Kunden kommen dabei eben von "meiner" Software. Wie ich jedoch die Serienbrief-Funktion des Writers zu meinem Nutzen verwenden kann, weiß ich noch nicht.
Ich würde mich über jegliche Hilfen bezüglich dieser beiden Punkte sehr freuen.
Vielen Dank im Vorraus
MfG
Benni