使用OpenXML SDK读取Office Online Server 2016文档的备注

需积分: 12 5 下载量 164 浏览量 更新于2024-09-08 收藏 287KB PDF 举报
本文档主要介绍了如何通过代码方式访问Office Online Server 2016中的文档备注信息。作者忘忧草在2016年10月13日分享了他在一个项目中遇到的问题和解决方案。由于Office Online Server (OOS) 实际上是基于OpenXML技术的,该技术主要用于处理Microsoft Office 2007及更高版本的文档,因此处理OOS文档的备注信息需要确保文档采用的是OpenXML兼容的格式。 首先,要实现这一功能,你需要下载并引用Microsoft的OpenXML SDK 2.5,可以从官方下载地址(https://www.microsoft.com/en-us/download/details.aspx?id=304252)获取。SDK包含两个必要的DLL文件,用于与Office文档交互。 在代码实现部分,作者建议将从SharePoint文档库(如SPSite和SPWeb)获取的文档转换为Stream流,以便使用OpenXML进行操作。具体步骤如下: 1. 创建一个名为sb的新StringBuilder对象。 2. 使用SPSite类连接到Office Online Server,例如通过"http://sp2016:8001"。 3. 对于每个SPWeb,打开指定的网页,获取特定文档的二进制流(如"测试文档.docx")。 4. 使用WordprocessingDocument.Open方法打开文档流,并设置第二个参数为true,以便以只读模式打开。 5. 接下来,访问文档的主文档部分(MainDocumentPart.Document.Body),然后搜索文档中的段落元素(paras)。 6. 在这些段落中查找并处理备注信息,这可能涉及到遍历和解析文档结构,识别和提取注释或批注部分。 需要注意的是,由于OpenXML不支持Office 97-2003格式的二进制文档,因此在处理这类文档时,需要先将其转换为至少Office 2007的格式。同时,OOS本身也不支持对这种旧格式文档的备注信息进行在线编辑。 通过本文提供的代码示例和必要的工具,开发者可以有效地读取和处理Office Online Server 2016中的文档备注信息,前提是文档格式符合OpenXML标准。这对于处理与Office文档交互的项目来说是一项重要的技能。