У меня есть блок кода здесь:
System.Net.WebClient wc = new System.Net.WebClient();
byte[] data = wc.DownloadData(xmlTempNode.Attributes["imageurl"].Value.ToString());
MemoryStream ms = new MemoryStream(data);
System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
string strImagePath = pptdirectoryPath + "\\" + currentSlide + "_" + shape.Id + ".png";
img.Save(strImagePath);
tempSlide.Shapes.AddPicture(strImagePath, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue, shape.Left, shape.Top, Convert.ToInt32(xmlTempNode.Attributes["imgwidth"].Value), Convert.ToInt32(xmlTempNode.Attributes["imgheight"].Value));
shape.Delete();
tempSlide.Shapes.AddPicture
прекрасно работает для небольших изображений, и он терпит неудачу, когда разрешение выше (здесь обязательно означает ответ не принимается в течение бесконечного времени и выдает исключение, когда страница обновляется).
Сообщение об исключении: Не удалось выполнить вызов удаленной процедуры. (Исключение из HRESULT: 0x800706BE) в Microsoft.Office.Interop.PowerPoint.Shapes.AddPicture (String FileName, MsoTriState LinkToFile, MsoTriState SaveWithDocument, Single Left, Single Top, Single Width, Single Height).
Любая помощь будет оценена по достоинству.
У меня также возникли проблемы с этой проблемой. Я хотел бы знать, что ваш объект tempSlide? функция AddPicture, кажется, добавляет изображение в разные местоположения на странице в зависимости от шаблона слайда. Мой объект tempslide - это «PowerPoint.Application ppApp = Globals.ThisAddIn.Application; PowerPoint.SlideRange tempSlide = ppApp.ActiveWindow.Selection.SlideRange; ' – user1
@ user1: можете ли вы поделиться, как вы используете метод? –