вставлять картинки в закладки (OpenXML) - PullRequest
2 голосов
/ 18 мая 2011

Я схожу с ума, пытаясь найти, как вставить картинки в свои закладки ...

На данный момент у меня нет проблем со вставкой текста или таблиц: я нахожу закладки и вставляю в эту позицию, как у Джонаспособ: Заменить текст закладки в файле Word, используя 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 ]

3 голосов
/ 19 мая 2011

Вставка изображения в закладку должна работать так, как если бы вы вставляли изображение в сам текстовый документ. Любая из этих ссылок должна показать вам, как правильно вставить картинку. Ключ заключается в том, чтобы найти закладку, в которую вы хотите вставить ее, и убедиться, что вы вставляете абзац с изображением между элементами <w:bookmarkStart> и <w:bookmarkEnd>. Если это то, что вы делаете, и у вас все еще есть проблемы, опубликуйте свой код, чтобы мы могли посмотреть.

EDIT

После просмотра вашего кода проблема в том, что элемент <w:bookmarkStart> является потомком элемента <w:p>. Вы хотите найти родителя <w:bookmarkStart>, который будет элементом <w:p>, а затем вставить абзац изображения в качестве следующего элемента, используя что-то вроде этого:

bookmarkStart.Parent.InsertAfterSelf<Paragraph>(parImg);
0 голосов
/ 08 сентября 2012

Я знаю, что уже слишком поздно, но попробуйте ниже, вы можете получить немного ближе к позиции закладки

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...