2

我正在使用以下代码使用 Word 模板中的 OpenXML WordprocessingDocument 创建 MS Word 文档。我正在使用 Stream 而没有为新文档使用任何物理位置。使用 OpenXML,可以在不使用物理位置的情况下创建文档(仅使用 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();
    }
}
4

0 回答 0