【发布时间】:2013-02-05 00:59:09
【问题描述】:
我对 microsoft office 开发一无所知,但我想构建一个插件原型,允许用户从远程存储库保存和打开文档。也许稍后在服务器上构建版本控制系统 - 但服务器端部分是其中最简单的部分(在我的情况下)。也许我应该专注于一次让它为一个办公应用程序工作 - 比如说 MS WOrd(除非人们认为 excel 更容易使用)。并让我们以 Office 2007 为目标(因为这是我安装的)。
保存
存储库将存储已标记的文档(由许多标签、多种类型)。保存文档时,AddIn 需要首先显示一个对话框并允许标记。 AddIn 需要通过 SOAP 或 REST api 向我们的服务器提交一组标签以及文档(Base 64 编码?)。几个问题
- 这可能吗?如果有关于如何实现的建议?是否有一种机制可以访问您正在查看的文档的二进制数据(流?)?
- 是否可以从 File-SaveAs 对话框中提取此内容?或者我需要创建自己的菜单项吗? Obviuos 前者可能是用户更熟悉的……
- 是否已经有一种远程文档持久性机制可供我使用?
开幕
一旦保存了许多文档,我们将需要一种检索/打开文档的方法。所以我想我需要一个允许浏览文档标签类型->标签值的对话(树可能有更多级别,但想从那里开始)。打开文档后,我认为 API 需要
- 进行 RPC 调用 (SOAP / REST) 以检索文档 - 解码内容(实际文档)并在 Word 中打开该流(例如)
- 我还想将我的标签保存在内存中
XML 设计
为了最好地可视化 Word 和服务器之间交换的数据,让我们想象一个 XML 结构,如下所示:
<document name="recapOfTheGame.doc">
<tags>
<tag type="team">New York Yankees</tag>
<tag type="team">Boston Redsox</tag>
<tag type="city">New York</tag>
<tag type="city">Boston</tag>
<tag type="type">recap</tag>
</tags>
<content encoding="base64">AKJSGHKASHGFKSJDHGFKSJDHGFSKDJFHGSKJDGSKDJGSKDJFHGSDKJFH</content>
</document>
存储库浏览器应在树中的多个位置显示此文档;这是一个存储库的示例,在五个位置显示此文档(基于标签):
repository
+ untagged <not shown in XML>
- team
+ Tampa Bay Rays <not shown in XML>
- Boston Resox
recapOfTheGame.doc
- New York Yankeeys
recapOfTheGame.doc
- city
+ Tampa Bay <not shown in XML>
- new york
recapOfTheGame.doc
- boston
recapOfTheGame.doc
- type
+ box scores <not shown in XML>
- recaps
recapOfTheGame.doc
其他想法
我只提供 XML 设计以使概念更具体,并且我对存储标签的其他方法持开放态度(如果可能的话,在文档中)。基本上,我将不胜感激任何方向。
我以不同的方式问了这个问题,以检查答案是否会有所不同,Open WORD Document from Database OR WebService
我接受下面的 webDav 回答,因为它在两者之间很常见,并且是 alfresco 所做的。
谢谢
【问题讨论】: