无法使用C#中使用AltChunk创建的文档中的OpenXml读取内容

时间:2017-01-09 14:50:43

标签: c# openxml-sdk

我使用 AltChunk 创建了一个文档,效果很好。还能够正确查看我的内容。 但是当我尝试使用openXML阅读Document内容时。 InnerTextnull,当我压缩文档时,使用 AltChunk 添加的文档会显示在那里。

有没有办法使用 OpenXML 获取内容,以便我可以验证最终文档?

1 个答案:

答案 0 :(得分:0)

AltChunk将内容文件嵌入到主文件中。主文件document.xml有一个简单的标记,其关系ID指向其中一个关系文件(document.xml.rels[Content_Types].xml),然后指向嵌入的条目文件

合并文档的工作由文字处理器在第一次打开并重新保存包含AltChunk标记的文件时处理。

如果在嵌入内容文件后需要使用主文件,则有几个选项:

  1. 信任AltChunk

    • 最简单的答案是简单地相信您的文字处理器将以完美的保真度呈现文档。添加内容,保存主文件,然后继续执行下一个任务。
  2. 向Word寻求帮助:

    • 如果您需要在嵌入内容后使用主文档,但仍在程序中,则只需启动Word的COM实例并使用它打开并重新保存主文件。瞧,你现在有了你的主文件,它的嵌入内容被压缩成一个文件。从这里,您可以从OpenXML SDK恢复操作。
  3. 自己动手:

    • 如果有疑问,您可以随时使用LINQ-toXML进入原始OpenXML标记。根据经验,我可以说这是一项很多工作。如果没有OpenXML SDK,您将负责管理交织在一起的XML文件的复杂结构。

    • 对于最近的项目,我构建了一个系统来读取,处理,组合,重新处理和保存数十个.docx文件。使用原始标记为我们提供了完全控制,无需安装Word或其他依赖项。也就是说,实施一个强大的合并非平凡文件系统所需的时间应该是个人周,如果不是人月,则需要测量。