【发布时间】:2015-05-07 09:41:02
【问题描述】:
我创建了一个基于模板的word文档。
现在我想得到这个新word文档的base64字符串。
我发现了一些关于获取内存流然后将其转换为 base64 的内容,但我并不真正了解它是如何工作的。
有什么想法可以将这个WordprocessingDocument doc 转换成base64 吗?
谢谢
【问题讨论】:
我创建了一个基于模板的word文档。
现在我想得到这个新word文档的base64字符串。
我发现了一些关于获取内存流然后将其转换为 base64 的内容,但我并不真正了解它是如何工作的。
有什么想法可以将这个WordprocessingDocument doc 转换成base64 吗?
谢谢
【问题讨论】:
最简单的方法是
byte[] bytes= System.IO.File.ReadAllBytes(sFullFileName);
string sBase64Bytes = System.Convert.ToBase64String(bytes);
您不必使用内存流来加载字节并转换为base 64。但是如果您想更新内存中的某些内容并在内存中获取更新的base64,您可以尝试这个:
byte[] bytes = System.Convert.FromBase64String(sBase64Data);
using (MemoryStream ms = new MemoryStream(bytes, true))
{
ms.Write(bytes, 0, bytes.Length);
using (WordprocessingDocument doc = WordprocessingDocument.Open(ms,true))
{
XmlDocument xCusDoc = OpenXmlHelper.GetCustomXmlDocument(doc);
sLayoutName = xCusDoc.DocumentElement.Attributes["name"].Value.ToString();
using (MemoryStream msw= new MemoryStream())
{
ms.WriteTo(msw);
bytes = msw.GetBuffer();
}
}//end using (WordprocessingDocument doc
}//end using (MemoryStream ms
如果你想把它保存到物理文件,你可以写字节。
System.IO.File.WriteAllBytes(sFileName, bytes);
【讨论】: