2015-05-07 67 views
0

我已經基於模板創建了一個word文檔。OpenXML WordProcessingDocument到base64

現在我想得到這個新的word文檔的base64字符串。

我發現了一些關於獲取內存流然後將其轉換爲base64的東西,但我並不真正瞭解它是如何工作的。

任何想法將轉換爲base64

感謝

回答

0

最簡單的方法是

byte[] bytes= System.IO.File.ReadAllBytes(sFullFileName); 
string sBase64Bytes = System.Convert.ToBase64String(bytes); 

你不必使用內存流加載字節,並轉化爲底部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);