c# - 在书签中插入图片 (OpenXML)

标签 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); 
   } 
}

谢谢!

最佳答案

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

编辑

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

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

关于c# - 在书签中插入图片 (OpenXML),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6044131/

相关文章:

c# - C# 中的简单客户端服务器应用程序

C#:如何测试 IEnumerable.GetEnumerator() 方法?

r - 如何从 R 生成文档(.rtf、.doc、.odt)

vb.net - 无法识别 Microsoft.Office.Interop.Word 命名空间的别名

c# - 在洋葱架构中将 ConnectionString 放在哪里

c# - ASP.NET 核心,更改未经授权的默认重定向

.net - 当从 .NET 中访问 PostgreSQL 时,是否存在阻止 Npgsql 提供多个并发读取器的内在限制?

.net - 同一事务中的并发数据库 (PostgreSQL) 命令

javascript - IIS 和带有 zopfli 的预压缩 Assets

vba - Word 文档中的 getElementByID