I am using the following code to create a MS word document using OpenXML WordprocessingDocument from a word template.I am using Stream and not using any physical location for new document.Using OpenXML ,Is is possible to create document without using a physical location (only with Stream) and finally save to a location?
I am not getting any error and new document is created successfully but the newly created document is corrupted and unable to open in MS word.
using (Stream stream1 = new FileStream("c:\\TestDoc.dotx", FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite)) {
using (WordprocessingDocument document = WordprocessingDocument.Open(stream1, true)) {
document.ChangeDocumentType(DocumentFormat.OpenXml.WordprocessingDocumentType.Document);
MainDocumentPart mainPart = document.MainDocumentPart;
DocumentSettingsPart documentSettingPart1 = mainPart.DocumentSettingsPart;
mainPart.Document.Save();
Stream mystream = mainPart.GetStream();
FileStream fileStream = File.Create("c:\\newdoc.docx", (int)mystream.Length);
byte[] bytesInStream = new byte[mystream.Length];
mystream.Read(bytesInStream, 0, bytesInStream.Length);
fileStream.Write(bytesInStream, 0, bytesInStream.Length);
document.Close();
}
}