C#:从.docx中删除图片内容控件

时间:2015-09-29 14:23:08

标签: c# image ms-word controls

我使用以下代码使用此标记名查找图片内容控件,并在使用函数Remove将其删除后再保存在Word文档中:

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修复该文档。 Word还在错误的详细信息中给我这条消息:

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

当我在修复之前和之后用Open Xml检查word文档时,我没有看到任何差异

那么删除Word文档中图片内容控件的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

我轻松解决了我的问题,事实上Word提供的错误消息很明确。所以我得到了我的优化校准内容的父元素,并添加了一个新的空段落,在我尝试删除优化校准内容之后,这足以解决我的问题。

以下是代码:

controlBlock.Parent.AppendChild(new DocumentFormat.OpenXml.Wordprocessing.Paragraph());
controlBlock.Remove();