Мы пытаемся манипулировать документом Word, чтобы удалить абзац на основе определенных условий.Но созданный файл слова всегда оказывается поврежденным, когда мы пытаемся открыть его с ошибкой:
Word обнаружил нечитаемый контент
Приведенный ниже код повреждает файл, но еслиубираем строку:
Document document = mdp.Document;
Файл сохраняется и открывается без проблем.Есть ли очевидная проблема, которую я пропускаю?
var readAllBytes = File.ReadAllBytes(@"C:\Original.docx");
using (var stream = new MemoryStream(readAllBytes))
{
using (WordprocessingDocument wpd = WordprocessingDocument.Open(stream, true))
{
MainDocumentPart mdp = wpd.MainDocumentPart;
Document document = mdp.Document;
}
}
File.WriteAllBytes(@"C:\New.docx", readAllBytes);
ОБНОВЛЕНИЕ:
using (WordprocessingDocument wpd = WordprocessingDocument.Open(@"C:\Original.docx", true))
{
MainDocumentPart mdp = wpd.MainDocumentPart;
Document document = mdp.Document;
document.Save();
}
Запустив приведенный выше код для физического файла, мы все равно можем открыть Original.docx без ошибки, поэтомукажется ограниченным изменением потока.