Мне нужно установить связь id
объекта Рисование для извлечения изображений из Word с помощью OpenXml
. Я видел Replace image in word doc using OpenXML и я использую этот код прямо сейчас:Как получить образ изображения чертежа с OpenXml (MS Word)?
string imageId = "default value";
Blip blipElement = selectedImage.Descendants<Blip>().First();
if (blipElement != null) {
imageId = blipElement.Embed.Value;
}
document.MainDocumentPart.GetPartById(imageId);
отлично работает для обычных изображений, но не работает для Powerpoint слайды, которые хранятся в виде EMF изображений внутри DOCX, потому что EMF Drawing не имеют Blip. Но у них есть ImageParts
, как и обычные изображения, и я вижу их. Итак, вопрос в том, как мне найти imageId из чертежа, чтобы получить эти EMP ImageParts? К сожалению, я не могу извлекать изображения другим способом, потому что я пытаюсь внедрить свой код в огромную существующую базу кода, поэтому мне нужно получить его из объекта Drawing.
Не могли бы вы предоставить образец документа? Как презентация powerpoint вставлена в документ слова? Через меню Insert-> Object? – Hans
Да, я сделал это в Word 2010 через Insert-> Object-> Microsoft PowerPoint Slide. Самое странное: вчера он сгенерировал рисунок без блипа один раз, теперь он генерирует совершенно другую вещь: с , которая на самом деле содержит rId, которую я ищу. Теперь я пытаюсь понять, почему и как он генерирует чертеж без всплывающих окон на первом месте ... Вот примеры xml. 1. Рисование с блипом: http://pastebin.com/Qwj9ewLP 2. Рисование без всплеска (причина, по которой я задал вопрос): http://pastebin.com/9vyBJDLh 3. Теперь: http://pastebin.com/JJ3piJi3 –
lonelyass
Я посмотрю ваши документы. Дайте мне несколько часов. – Hans