我使用以下代码使用此标记名查找图片内容控件,并在使用函数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文档中图片内容控件的最佳方法是什么?
答案 0 :(得分:0)
我轻松解决了我的问题,事实上Word提供的错误消息很明确。所以我得到了我的优化校准内容的父元素,并添加了一个新的空段落,在我尝试删除优化校准内容之后,这足以解决我的问题。
以下是代码:
controlBlock.Parent.AppendChild(new DocumentFormat.OpenXml.Wordprocessing.Paragraph());
controlBlock.Remove();