在书签中插入图片(OpenXML)

时间:2011-05-18 11:45:19

标签: c# .net ms-word openxml openxml-sdk

我疯狂地试图找到如何在我的书签中插入图片......

目前我对插入文本或表格没有任何问题:我找到了书签,并按照John的方式插入该位置:Replace bookmark text in Word file using Open XML SDK

现在我想将图像发送到此书签。我正在读这样的文章:

...但我无法使用我的模板dotx和我的书签。一些想法?

以下是我用来在书签中插入段落的代码:

Run runImg = new Run(); 
runImg.Append(element); 

Paragraph parImg = new Paragraph(); 
parImg.Append(runImg); 

foreach (BookmarkStart bookmarkStart in bookmarkMap.Values) 
{ 
   if (bookmarkStart.Name.Value == _nomBM) 
   { 
      bookmarkStart.FirstChild.PrependChild(parImg); 
   } 
}

谢谢!

2 个答案:

答案 0 :(得分:3)

在书签中插入图片应该就像将图片插入word文档本身一样。以上链接中的任何一个都应该向您展示如何正确插入图片。关键是要找到要插入的书签,并确保在<w:bookmarkStart><w:bookmarkEnd>元素之间插入包含图片的段落。如果您正在做的事情仍然存在问题,请发布您的代码,以便我们查看。

修改

看到您的代码后,问题是<w:bookmarkStart>元素是<w:p>元素的子元素。您想要找到<w:bookmarkStart>的父级<w:p>元素,然后使用以下内容将您的图片段落作为下一个元素插入:

bookmarkStart.Parent.InsertAfterSelf<Paragraph>(parImg);

答案 1 :(得分:0)

我知道为时已晚,但尝试以下内容可能会更接近书签位置

bookmarkStart.Parent.InsertBeforeSelf<Paragraph>(parImg);