在书签中插入图片 (OpenXML)

本文关键字:OpenXML 书签 插入 | 更新日期: 2023-09-27 17:56:54

我快疯了,试图找到如何在我的书签中插入图片......

目前,我在插入文本或表格方面没有问题:我找到书签并像约翰一样插入该位置: 使用Open XML SDK替换Word文件中的书签文本

现在我想将图像发送到此书签。我正在阅读以下文章:

  • http://msdn.microsoft.com/en-美国/图书馆/BB497430(Office.14).aspx

  • http://social.msdn.microsoft.com/Forums/en-US/oxmlsdk/thread/6d9066db-a154-475d-9731-944c8ce13e67/

  • http://msdn.microsoft.com/en-us/library/ee342530.aspx

。但我无法使用我的模板 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); 
   } 
}

谢谢!

在书签中插入图片 (OpenXML)

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

编辑

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

bookmarkStart.Parent.InsertAfterSelf<Paragraph>(parImg);
我知道为

时已晚,但请尝试以下操作,您可能会更接近书签位置

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