2013-06-10 3 views
2

Hie парней,Добавление изображения в слайды Powerpoint с помощью C# throws Не удалось выполнить вызов удаленной процедуры. (Исключение из HRESULT: 0x800706be)

У меня есть блок кода здесь:

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).

Любая помощь будет оценена по достоинству.

+0

У меня также возникли проблемы с этой проблемой. Я хотел бы знать, что ваш объект tempSlide? функция AddPicture, кажется, добавляет изображение в разные местоположения на странице в зависимости от шаблона слайда. Мой объект tempslide - это «PowerPoint.Application ppApp = Globals.ThisAddIn.Application; PowerPoint.SlideRange tempSlide = ppApp.ActiveWindow.Selection.SlideRange; ' – user1

+0

@ user1: можете ли вы поделиться, как вы используете метод? –

ответ

2

Наконец я решена issue.used ниже кода addpicture

tempSlide.Shapes.AddPicture(strImagePath, Microsoft.Office.Core.MsoTriState.msoTrue, Microsoft.Office.Core.MsoTriState.msoFalse, Convert.ToInt32(shape.Left), Convert.ToInt32(shape.Top), Convert.ToInt32(xmlTempNode.Attributes["imgwidth"].Value), Convert.ToInt32(xmlTempNode.Attributes["imgheight"].Value));//load new image to shape 

Проблема была, я посылал msoFalse для LinkToFile и msoTrue для SaveWithDocument.

и теперь, минуя msoTrue для LinkToFile и msoFalse для SaveWithDocument, выполнил мою работу.

happy Coding ..