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