像创建Office文档一样公开MS文档格式

2024-06-01 06:40:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我们应用程序的“文档”是单个二进制文件。在

我们的客户询问我们是否可以将类似于msoffice的文档属性添加到文档文件中,以便用户更容易地管理它们。更容易管理,我指的是Windows资源管理器在工具提示中显示常用文档属性的能力。在

我的研究似乎表明我们应该把OLE结构化存储作为数据文件的基础。我见过这种技术,或者被描述为MS结构化存储、OLE2复合文档格式和Windows文件元数据。在

我对使用OLE结构化存储的担心是,Office 2007或2010似乎不再使用此文件格式,并且OLE结构化存储要求注册DSOFILE.DLLActiveX组件,我们的许多客户将无法使用,因为他们在用户不使用的锁定工作站上运行我们的软件拥有安装软件的管理员权限。(我们的应用软件是纯XCOPY部署)。在

希望能听听我们的选择。在

谢谢你, 马尔科姆


Tags: 文件工具用户文档应用程序客户属性软件
2条回答

我很确定你最好的答案是使用OLE复合文档。在

微软可能已经停止使用这个,但那是因为他们已经使用了XML文件格式。除非您愿意将当前的文件格式转换为XML,否则我不认为标记的新标准会对您感兴趣。在

您可以让您的应用程序保存两个文件,一个是XML文件,一个是用于标记的文件,另一个是二进制数据文件,但这对用户来说意味着痛苦。OLE复合文档格式的要点是允许多个“文件”绑定在一个文件中。在

另外,如果现代Windows不支持内置的OLE复合文档,我会非常惊讶。我敢肯定,早在十多年前的microsoftword6.0,文档就是以这种OLE复合文档格式保存的。为什么WindowsXP或更新版本需要一个额外的.DLL文件来解析标记?在

使用OLE复合文档格式最好的一点是,无论发生什么情况,用户标记都将与文件一起使用:如果用户将文件写入文件服务器,如果用户在电子邮件中删除该文件,如果用户将文件刻录到CD上,则不管怎样。(我写的第一个答案是糟糕的,我删除了它;即使它起作用了,它也会将用户标记放在文件之外,而且我越想越不高兴

因此,我建议您尝试创建一个OLE复合文档,然后在标准安装的Windows XP中查看Windows资源管理器中的文件。看看你是否可以在不需要下载和安装ActiveX.DLL的情况下看到这些标记。我很肯定它会起作用的。(但是我已经不怎么使用Windows了,所以我无法方便地为您测试这个功能。)

编辑:好吧,我刚做了个测试。我在工作,这里有一台Windows电脑。我用word2007制作了一个文档,并将其保存为word97格式。我查看了Windows资源管理器中的文档属性;在标记中可以看到作者的名字。我在“comments”中添加了文本,然后在word2007中打开了该文件。然后我可以查看评论(点击左上角的“office”图标圈,选择“Prepare”,选择“Properties”)。在

所以,我的理论有一些证据支持它:我不必安装任何特殊的软件,我的Windows资源管理器只使用带有标记的OLE复合文档格式Word文件。(可能是Microsoft Office安装了一些特殊的.DLL来使用Windows资源管理器中的标记;我在那台计算机上安装了Microsoft Office 2007。但您的客户可能也有Microsoft Office,因此即使是这样,我仍然认为这是最好的解决方案。)

我建议你用Google搜索“OLE复合文档格式”,看看如何编写这种格式。我在这里找到了一个如何读取标记的示例:http://support.microsoft.com/kb/186898

在Windows 2000或更高版本上,您也可以store the summery information in the NTFS file metadata,这样诸如Windows资源管理器或Windows桌面搜索之类的应用程序可以使用属性页、工具提示、列和搜索中的属性。在

相关问题 更多 >