使用Java中的Eclipse SWT OleClientSite打开扩展名为.doc的Word文档

时间:2014-04-14 07:59:03

标签: java swt ole

我正在使用Eclipse SWT OleClientSite(在Windows 7中)在RCP应用程序中打开Word文档的程序。在过去两年中,该程序调用了以下构造函数:

OleClientSite clientSite = new OleClientSite(oleFrame, SWT.NULL, new File(documentFileName));

自SWT的最新更新以来,此构造函数现在在尝试使用" .doc"打开Word文档时抛出异常。延期。带有" .docx"的Word文档扩展仍然正常运行。问题似乎是OleClientSite没有正确识别" .doc"作为Word扩展,因为使用以下构造函数显式输入此信息有效:

OleClientSite clientSite = new OleClientSite(oleFrame, SWT.NULL, "Word.Document", new File(documentFileName));

这个构造函数带有一个警告,但声明它永远不会被使用:

  

重要提示:此方法不属于公众           OleClientSite的API。它仅标记为公开,以便它           可以在SWT提供的包中共享。它不是           可在所有平台上使用,绝不应该从中调用           应用程序代码。

奇怪的是,尽管这个构造函数明确表示永远不应该使用它,但它是used on the Eclipse SWT Snippets Website as an example of how to open a .doc file ...

如果有人有任何指示,我会非常感激。到目前为止,我的选择似乎要么禁止我的用户使用" .doc"文件或回滚到旧版本的SWT。

1 个答案:

答案 0 :(得分:0)

当前的Eclipse版本支持从导航器视图中打开Word-Document(* .doc)。它使用类org.eclipse.ui.internal.editorsupport.win32.OleEditor在Editor-Part中打开文档。我建议你看一下[1]的代码,并根据你的场景调整所需的部分。

[1] http://git.eclipse.org/c/platform/eclipse.platform.ui.git/plain/bundles/org.eclipse.ui.win32/src/org/eclipse/ui/internal/editorsupport/win32/OleEditor.java