使用MemoryStream的WordProcessingDocument会导致损坏的结果

时间:2016-09-15 23:21:18

标签: vb.net ms-word openxml-sdk

我尝试使用OpenXML打开word文档,并在修改后,将修改后的版本作为可下载文件返回给用户。至于这个的可下载部分,我已经涵盖了,在那里,我修改我的响应只是返回一个word文档。但是,我遇到的问题是成功打开和修改word文档。虽然我能够提供要下载的文档,但该文件始终是'#34;腐败"当我打开它时。

我有一个非常简单的代码片段,它仍然会返回一个损坏的word文档。在我打开文件的那一刻(因为我已经从这个片段中删除了所有修改),这几乎就像文件变得腐败一样。

Private Function GenerateExportWithTemplate() As MemoryStream

  Dim template As Byte() = System.IO.File.ReadAllBytes(strTemplateFileName)

  Using ms As New MemoryStream()
    ms.Write(template, 0, template.Length)

    Using doc As WordprocessingDocument = WordprocessingDocument.Open(ms, True)

      'Code to modify word document.

    End Using

    Return ms
  End Using
End Function

我不相信我完全理解上面代码段中发生的事情。任何解释为什么我收到一个损坏的文件将不胜感激。

如何从模板文件成功打开和修改WordProcessingDocument,并作为内存流返回?虽然有一百万个如何打开文件和进行修改的例子,但我还没有找到一个成功的例子。意思是,文件每次都被破坏。如何在没有收到损坏的Word文档的情况下执行此操作?

0 个答案:

没有答案