由于您提到其他语言的解决方案可能被翻译/可行:
这是一个 Java 解决方案。
背景
使用 OOo/LO(分别为 OpenOffice.org 和 LibreOffice)使用 Java 时需要使用 juh.jar 建立连接,并且此 jar 必须在 OOo/LibreOffice 的安装文件夹和类路径中。
如果您使用 maven 或在 Web 容器上安装,这非常困难......要解决这个问题,这个页面:https ://forum.openoffice.org/en/forum/viewtopic.php?f=44&t=2520&sid =42b65314c6f727fe42315c9910e443b7在第一篇文章(2008 年 2 月 10 日)中有一个下载,我今天(2014 年 1 月 30 日)使用了同一个 jar,并且可以验证它是否可以在 Ubuntu 13.10 上与 LibreOffice 4.1.4 一起使用。所以这应该给你进一步的兼容性保证!
解决方案
在该页面上可以看到提供的解决方案将连接字符串更改为:
//following assumes juh.jar is in the OOo/LO installation folder and is also on the classpath
com.sun.star.uno.XComponentContext xContext = com.sun.star.comp.helper.Bootstrap.defaultBootstrap_InitialComponentContext();
以下允许您将 juh.jar 作为项目资源但也需要 bootstrapconnection.jar 作为项目的一部分,因为安装文件夹与必须显式声明的 juh.jar 文件无关,如下所示:
//fully qualified names used to avoid any ambiguity
String oooExeFolder = "/opt/libreoffice4.1/program/";
com.sun.star.uno.XComponentContext xContext = ooo.connector.BootstrapSocketConnector.bootstrap(oooExeFolder);
源代码也可以在下载的 jar 中找到。
OOo/LO 都开始使用“soffice”。
查看代码 (bootstrapconnector.jar) 后,它看起来并不太长,应该很容易转换。
我的问题是你如何告诉引导方法要启动哪个版本?
- 将 bootstrapconnector.jar 中包含的代码转换为 C#,你应该很高兴
- 确定通往“办公室”的路径
- 找出适合传入的