2012-06-26 4 views
0

добавить PNG изображения в слово 2010 документа, как это:ошибка отношений при попытке вставить и изображение в документ Word,

var imagePart = report.MainDocumentPart.AddImagePart(ImagePartType.Png); 
var imagePath = Path.Combine(imageFolder, "1.png"); 
var stream = new FileStream(imagePath, FileMode.Open); 
imagePart.FeedData(stream); 
stream.Close(); 

я нахожу BLIP элемент пустого элемента управления содержимым Picture и изменить свою ссылку чтобы указать на новое изображение:

var blip = image.Descendants<Blip>().Single(); 
blip.Embed = report.MainDocumentPart.GetIdOfPart(imagePart); 

Я сохраняю сгенерированный документ и проверяю его с помощью инструмента Open XML Productivity Tool. Я получаю эту ошибку:

The relationship 'Ra4d8ccdc5256bb1' referenced by attribute 'http://schemas.openxmlformats.org/officeDocument/2006/relationships:embed' does not exist. 

Что такое отношения? Почему не AddImagePart создать его? Как исправить эту ошибку? Когда я открываю сгенерированный документ в Word, изображение не отображается.

ответ

1

Я нашел решение. Я не знаю, почему, но мне пришлось приложить

WordprocessingDocument report = WordprocessingDocument.Open(path, true) 

с using заявление, как это:

using(WordprocessingDocument report = WordprocessingDocument.Open(path, true)) { 
    //embed the image 
} 

withot using документ не был сохранен должным образом: отношения не были созданы.

0

Вы можете найти образец @http://msdn.microsoft.com/en-us/library/bb497430.aspx

+0

В статье объясняется, как добавить совершенно новое изображение, а не как ссылаться на него в элементе управления контентом – hidarikani

+1

Для управления контентом изображения вы можете прочитать «Замена изображения в элементе управления содержимым изображения» в документе Open XML WordprocessingML Document @ http: //ericwhite.com/blog/2011/03/27/replacing-a-picture-in-a-picture-content-control-in-an-open-xml-wordprocessingml-document/ –