【发布时间】:2011-01-20 07:35:18
【问题描述】:
我成功地通过 UNO 与 Open Office 合作。现在我想将 Open Office 库嵌入到我的 Java 应用程序中,可以吗?
【问题讨论】:
标签: java openoffice.org uno
我成功地通过 UNO 与 Open Office 合作。现在我想将 Open Office 库嵌入到我的 Java 应用程序中,可以吗?
【问题讨论】:
标签: java openoffice.org uno
是的,你可以。你需要OpenOffice SDK。
查找示例here:(您会看到它谈到了 StarOffice SDK,但它是一样的,记住 StarOffice 只是 OpenOffice.org 的 Sun 品牌版本,添加了商业字体和剪贴画)
如果您只想从 Java 应用程序操作 ODF 文件而不实际加载 openoffice.org,check this lib。
FC
【讨论】:
我也有类似的问题。我在Apache OpenOffice Developer's Guide 中找到了一些关于Using the Desktop 的文档。关于 StarSuite 示例的兼容性,也许某些 StarSuite 示例是可行的?该指南提到了一个特定的问题,“StarOffice 5.x 中 OpenOffice.org GUI 的重新设计”。
本指南的示例交替使用 StarSuite Basic 和 Java 提供,使用 UNO Development Kit。在开发人员指南的前面还有一个方便的tutorial。 UNO IDL 在Writing UNO Components 部分下介绍。 UNO 组件模型可能看起来类似于 OMG CORBA 或 Microsoft 的 COM——我不知道它在 C# 中是如何接口的
未能找到问题的确切解决方案,以下代表我的“最佳猜测”至“如何”。
虽然我无法找到任何确切的文档项目,如果在外部 Java 应用程序中嵌入 OpenOffice 组件,但是 - 对于 UNO API 的视图 - 引用 @ 987654326@文章,介绍了一个UNO接口XFrame。 XFrame 接口发布了一个方法,getComponentWindow 此外 - 返回一个 ::com::sun::star::awt::XWindow 类型的对象,一个 UNO IDL 接口。当然,在 XWindow 发布的接口方法中,我没有看到任何获取本机窗口对象的方法。当然,会有一个本地窗口对象,在应用程序的某个地方访问。就个人而言,我对 OpenOffice 源代码树并不是很熟悉。
如果将应用程序作为扩展嵌入到 OpenOffice 中,或者将 OpenOffice 嵌入到应用程序中,这可能是一项更简单的任务?关于扩展 OpenOffice,在 DZone 有一个教程,How Fast Can OpenOffice.org Be Extended?此外,如果扩展 OpenOffice,"First contact" tutorial 提供了一些附加信息。在后者中,作者使用 Ant 进行构建过程。当然,如果需要,转换为使用 Apache Maven 很容易,例如在类似方面应用 Maven 的 JAR 构建器。
HTH
【讨论】: