我正在使用以下代码使用Word模板中的OpenXML WordprocessingDocument创建一个MS Word文档。我正在使用Stream而不使用任何物理位置来获取新文档。使用OpenXML,可以在不使用物理的情况下创建文档location(仅限Stream)最后保存到某个位置?
我没有收到任何错误,并且成功创建了新文档,但新创建的文档已损坏,无法在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();
}
}