1

我遇到了嵌入在 Lotus Notes 文档中的 OLE 对象的特定问题。

用户已将 fe Word 或 Excel 文档附加为 OLE 对象(在 Lotus Notes 文档中),我需要从 OLE 获取这些原始文档作为可以在其主机应用程序中打开的文件附件。

使用 Lotus Notes C API,我设法将 OLE 对象分离到 HDD。问题是 Word 文档嵌套在 Word.Document.8 或 Word.Document.12 目录中的 OLE 二进制文件中。仅将 OLE 二进制文件重命名为 doc 或 docx 是行不通的。

这就是我编写读取二进制文件和提取文档的 Java OLE 包的原因。这行得通,但是……有一个缺点。

我必须解析 OLE 类名,如果它是 Word.Document.8,我需要编写代码手动从 word.document.8 目录中提取所有流并将它们保存为新的 .doc OLE 对象,以便 Word 正确打开它.

这对于 Office 文档来说并不难,但所有类型的东西都可以嵌入到 OLE 中,我无法涵盖所有​​可能性。

是否有可以从 OLE 二进制文件中提取嵌入对象的 C api 函数(原始文件名不重要,但扩展名很重要)?双击 OLE 对象时,Lotus 或 Word 是如何工作的?它必须以某种方式重建嵌入式文档?我想以同样的方式做:-)

谢谢你的帮助。

4

2 回答 2

0

尝试自动化 Notes 以将嵌入对象复制到剪贴板,然后从剪贴板获取 CF_EMBEDDEDOBJECT 格式,这类似于将 OLE 项目拖到 Windows 资源管理器以创建废料文件的方式。

参考资料和有用的页面:

[引用历史记录]

于 2012-09-05T01:40:23.457 回答
0

为了在 C API 中提取文件,我会看一下 NSFNoteCipherExtractFile 函数(和 NSFNoteCipherDecrypt)。如果使用 8.x 或更高版本。

于 2013-02-11T10:10:27.230 回答