在我的课堂上,我收到一个
WordprocessingDocument
对象作为另一个方法的返回。我知道该文档是在内存中创建的 (MemoryStream
)。
现在,我需要获取此
MemoryStream
对象的底层 WordprocessingDocument
,或者将其重新保存到新的 MemoryStream
。
我需要它作为
MemoryStream
,这样我就可以将它转移到我们的存储库。
如何访问底层
MemoryStream
,或将对象重新保存到新的 MemoryStream
?
您可以将
WordprocessingDocument
克隆到新的 MemoryStream
中,如下所示:
static MemoryStream CloneWordprocessingDocument(WordprocessingDocument document)
{
MemoryStream memStream = new MemoryStream();
document.Clone(memStream,true);
memStream.Position = 0;
return memStream;
}
我用下面的控制台项目测试了它:
class Program
{
static void Main()
{
WordprocessingDocument wordDocument = WordprocessingDocument.Open("Test.docx", true);
// Clone the WordprocessingDocument to a MemoryStream
MemoryStream clonedStream = CloneWordprocessingDocument(wordDocument);
File.WriteAllBytes("Final.docx", clonedStream.ToArray());
}
static MemoryStream CloneWordprocessingDocument(WordprocessingDocument document)
{
MemoryStream memStream = new MemoryStream();
document.Clone(memStream,true);
memStream.Position = 0;
return memStream;
}
}