【问题标题】:insert pictures in bookmarks (OpenXML)在书签中插入图片 (OpenXML)
【发布时间】:2011-08-27 23:57:56
【问题描述】:

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

目前我在插入文本或表格方面没有任何问题:我找到书签并像 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); 
   } 
}

谢谢!

【问题讨论】:

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


    【解决方案1】:

    我知道为时已晚,但尝试下面的操作可能会离书签位置更近一些

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

    【讨论】:

      【解决方案2】:

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

      编辑

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

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

      【讨论】:

      • 好的,我知道...看,如果我知道:document.MainDocumentPart.Document.Body.AppendChild(new Paragraph(new Run(element)));其中 element 是具有所有属性和格式的图像...效果很好,并且图像被插入到主文档中。但是当我想插入我的书签时,我会这样写:
      • 运行 runImg = new Run(); runImg.Append(元素);段落 parImg = new Paragraph(); parImg.Append(runImg); foreach (BookmarkStart bookmarkStart in bookmarkMap.Values) { if (bookmarkStart.Name.Value == _nomBM) { bookmarkStart.FirstChild.PrependChild(parImg); } } 不工作
      • @Displaying - 这是因为工作簿部分开始元素是段落元素的子元素。一旦你找到你想要的开始书签元素,你就可以得到它的父元素,然后将图像段落添加为下一个元素。 bookmarkStart.Parent.InsertAfterSelf&lt;Paragraph&gt;(parImg); 之类的东西,请参阅我的编辑以获取相同的信息。
      • 我最后的愿望是将这张图片放入书签中(而不是放在“之后”或“之前”的段落中)......也许这样你的图片位置取决于书签的位置跨度>
      • @displaying - 对于要在书签中的段落,它必须在 bookmarkstart 和 bookmarkend 元素之间。插入之后应该把它放在两者之间。如果没有找到书签结束元素并在此元素之前插入您的段落。
      猜你喜欢
      • 1970-01-01
      • 2012-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多