Ошибка связи при попытке встраивания и изображения в документ Word

Я добавляю изображение PNG к документу Word 2010 следующим образом:

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 и изменяю его свойство reference, чтобы оно указывало на новое изображение:

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, изображение не отображается.

2 ответа

Решение

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

WordprocessingDocument report = WordprocessingDocument.Open(path, true)

с using утверждение как это:

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

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

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

Другие вопросы по тегам