2015-09-29 2 views
-1

Я использую следующий код, чтобы найти изображения Content Control, используя тэг этого один и после я использую функцию Удалить, чтобы удалить его в документ Word:C#: Удаление изображения содержимого управления обозревают .docx

System.IO.File.Copy(templatePath, outputPath, true); 

using (WordprocessingDocument doc = WordprocessingDocument.Open(outputPath, true)) 
{ 
    tagName = "portrait"; 
    controlBlock = doc.MainDocumentPart.Document.Body.Descendants<SdtElement>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == tagName).SingleOrDefault(); 
    if (controlBlock != null) 
    { 
     controlBlock.Remove(); 
    } 

    doc.Close(); 
} 

Но когда я открываю созданный файл в Word, документ должен быть восстановлен Word, если я не могу его открыть. Слово также дает мне это сообщение в деталях ошибки:

<p> elements are required before every </tc> 

Когда я проверить документ слова с открытым Xml до и после того, как он был восстановлен, я не вижу никакой разницы

Так что же такое лучший способ удалить элемент управления контентом изображения в документе Word?

ответ

0

Я решил проблему легко, на самом деле сообщение об ошибке, предоставленное Word, ясно. Поэтому я получаю родительский элемент моего содержимого управления изображениями и добавляю новый пустой абзац и после того, как я попытался удалить контент управления изображением, и этого было достаточно, чтобы решить мою проблему.

Вот код:

controlBlock.Parent.AppendChild(new DocumentFormat.OpenXml.Wordprocessing.Paragraph()); 
controlBlock.Remove(); 
Смежные вопросы