[Java] .sxw einlesen, Text hinzufügen und wieder abspeichern

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

Moderator: Moderatoren

edv
**
Beiträge: 39
Registriert: Do, 08.09.2005 15:19

[Java] .sxw einlesen, Text hinzufügen und wieder abspeichern

Beitrag von edv »

Hi ihr,
nachdem ich gestern angefangen habe, mich aus beruflichen Grüden ein wenig in die ooo-api einzuarbeiten, bin ich heute auf das Erste Hinderniss gestossen. Wahrscheinlich dürfte es für die meisten von euch kein Problem sein, den Grund meiner NullPointerException zu finden...

Der relevante Codeausschnitt:



xRemoteServiceManager = this.getRemoteServiceManager(
"uno:socket,host=localhost,port=8100;urp;StarOffice.ServiceManager");
Object desktop = xRemoteServiceManager.createInstanceWithContext(
"com.sun.star.frame.Desktop", xRemoteContext);

XComponentLoader xComponentLoader = (XComponentLoader)UnoRuntime.queryInterface(XComponentLoader.class, desktop);

PropertyValue[] loadProps = new PropertyValue[1];
PropertyValue x=new PropertyValue();
x.Name="Overwrite";
x.Value=new Boolean(true);
loadProps[0]=x;

XComponent xTextComponent = xComponentLoader.loadComponentFromURL(
"file:///c:/test.sxw", "_blank", 0, loadProps);


XTextDocument xTextDocument=
(XTextDocument)UnoRuntime.queryInterface(
XTextDocument.class, xTextComponent);
XText xText=xTextDocument.getText();

XTextCursor xTextCursor = xText.createTextCursor();
xTextCursor.gotoEnd(false);
xText.insertString(xTextCursor,"und noch ein wenig einfügen",false);

PropertyValue[] saveProps = new PropertyValue[0];
XStorable xStorable = (XStorable)UnoRuntime.queryInterface(XStorable.class, xText);
xStorable.storeAsURL("file:///c:/test2.sxw",saveProps);
edv
**
Beiträge: 39
Registriert: Do, 08.09.2005 15:19

Beitrag von edv »

Ok, das Problem hat sich schon erledigt.
Die zweitletzte Zeile muß natürlich lauten:
XStorable xStorable = (XStorable)UnoRuntime.queryInterface(XStorable.class, xTextComponent);
Antworten