【发布时间】:2014-01-06 23:39:56
【问题描述】:
我的 .NET 应用程序(能够标记文档的文件管理器)必须能够读取和写入 Word 文档中的自定义属性。
应用程序必须能够在 Word 中打开文档和 Word 未运行时执行此操作。
(它必须对 Excel 和 Powerpoint 文档执行相同的操作,而不仅仅是 Word 文档。)
我的问题是如何解决这个问题。
更新:这是我认为可以解决的方法:
1) 处理文档未在 Word 中打开的情况:应用程序将通过the openXml api 将自定义属性直接写入文档文件。但是如果文档是 .doc 而不是 .docx 怎么办?我应该使用什么 API?
2) 处理在 Word 中打开文档的情况:我将创建一个 Word 插件,然后应用程序将向插件发送一条消息(通过命名管道),告诉“添加这个文档的自定义属性”。然后加载项将添加属性,如here 所述。
你觉得上面的架构有问题吗?
感谢您的任何建议。
【问题讨论】:
-
"应用程序将通过 openXml api 将自定义属性直接写入文档文件。" - 此应用程序是否会在没有 Microsoft Office 的机器上运行,或者仅当机器中有 Microsoft Office 时才运行。
-
应用程序必须在没有办公室的机器上运行。
-
您可以有一个使用 Open XML 的项目,并且可以从您的应用程序和 WordAddin 中调用它。一旦设置了自定义属性,它就会使文档变脏并且必须保存。我认为无论是您的应用程序还是插件,都应该从它的调用点保存文档。