我正在尝试在我的 Java 应用程序中使用 Open Office。
基于 SDK,在 bootstrapconnector.jar 的额外帮助下,我成功启动了空 sritter 并可以写入文档。
现在,我想打开存储在 ByteArray 中的文档,并在进行一些修改后将更改的文档保存到 ByteArray。
有人可以帮我这样做吗?
这是开始 sWritter 的 SDK 部分。
public static com.sun.star.text.XTextDocument openWriter(
com.sun.star.uno.XComponentContext xContext) {
//define variables
com.sun.star.frame.XComponentLoader xCLoader;
com.sun.star.text.XTextDocument xDoc = null;
com.sun.star.lang.XComponent xComp = null;
try {
// get the remote office service manager
com.sun.star.lang.XMultiComponentFactory xMCF =
xContext.getServiceManager();
Object oDesktop = xMCF.createInstanceWithContext(
"com.sun.star.frame.Desktop", xContext);
xCLoader = (com.sun.star.frame.XComponentLoader) UnoRuntime.queryInterface(com.sun.star.frame.XComponentLoader.class,
oDesktop);
com.sun.star.beans.PropertyValue[] szEmptyArgs =
new com.sun.star.beans.PropertyValue[0];
String strDoc = "private:factory/swriter";
xComp = xCLoader.loadComponentFromURL(strDoc, "_blank", 0, szEmptyArgs);
xDoc = (com.sun.star.text.XTextDocument) UnoRuntime.queryInterface(com.sun.star.text.XTextDocument.class,
xComp);
} catch (Exception e) {
System.err.println(" Exception " + e);
e.printStackTrace(System.err);
}
return xDoc;
}
如您所见,有一个方法 loadComponentFromURL。
我在 OOoBeanViewer 的其他地方看到可以读取和写入 Doc 到 ByteArray,但是我不知道如何在没有我不想在我的项目中使用的 officebean.jar 的情况下实现这一点。
感谢您的评论和提示。