OpenXML WordProcessingDocument到base64

时间:2015-05-07 09:41:03

标签: ms-word openxml

我已经根据模板创建了一个word文档。

现在我想获得这个新word文档的base64字符串。

我找到了一些关于获取内存流然后将其转换为base64的内容,但我真的不明白它是如何工作的。

是否有意在<span class="dt"> <p><select> <option>1</option> <option>2</option> <option>3</option> </select> <b>:</b></p><p> <select> <option>a</option> <option>b</option> <option>c</option> </select> <b>:</b></p><p> <select> <option>x</option> <option>y</option> <option>z</option> </select> </p> </span> 转换WordprocessingDocument doc

由于

1 个答案:

答案 0 :(得分:0)

最简单的方法是

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);