Ошибка связи при попытке встраивания и изображения в документ 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