Проблема с изменением объекта при добавлении OleObjectFrame

Объяснение и решение

Aspose.Slides отображает сообщение Изменен объект для уведомления о том, что OLE объект был изменен, и изображение предпросмотра необходимо обновить.

Например, если вы добавите диаграмму Microsoft Excel в качестве OleObjectFrame на слайд (для получения более подробной информации смотрите статью Управление OLE) и затем откроете презентацию в приложении Microsoft PowerPoint, вы увидите это изображение на слайде:

Замените все изображения на новые изображения

todo:image_alt_text

Если вы хотите проверить и подтвердить, что ваш OLE объект был добавлен на слайд, вам нужно дважды щелкнуть по сообщению Изменен объект, или щелкнуть правой кнопкой мыши по нему и пройти через Объект рабочего листа > Опция редактирования.

todo:image_alt_text

PowerPoint затем откроет встроенный OLE объект

todo:image_alt_text

Слайд может сохранять сообщение Изменен объект. Как только вы щелкните по OLE объекту, предпросмотр слайда обновится, и сообщение Изменен объект будет заменено фактическим изображением OLE объекта.

todo:image_alt_text

Теперь вы можете сохранить свою презентацию, чтобы убедиться, что изображение для OLE объекта обновлено правильно. Таким образом, после сохранения презентации, когда вы снова откроете ее, вы НЕ увидите сообщение Изменен объект.

Другие решения

Решение 1: Замените сообщение об изменении объекта изображением

Если вы не хотите удалять сообщение Изменен объект путем открытия презентации в PowerPoint и затем ее сохранения, вы можете заменить сообщение на свое предпочтительное изображение предпросмотра. Эти строки кода демонстрируют процесс:

using (Presentation pres = new Presentation("embeddedOle.pptx"))
{
   ISlide slide = pres.Slides[0];
   IOleObjectFrame oleObjectFrame = (IOleObjectFrame)slide.Shapes[0];
    
   IPPImage oleImage = pres.Images.AddImage(File.ReadAllBytes("my_image.png"));
   oleObjectFrame.SubstitutePictureTitle = "Мой заголовок";
   oleObjectFrame.SubstitutePictureFormat.Picture.Image = oleImage;
   oleObjectFrame.IsObjectIcon = false;
    
   pres.Save("embeddedOle-newImage.pptx", SaveFormat.Pptx);
}

Слайд, содержащий OleObjectFrame, затем изменится на это:

todo:image_alt_text

Решение 2: Создайте надстройку для PowerPoint

Вы также можете создать надстройку для Microsoft PowerPoint, которая обновляет все OLE объекты при открытии презентаций в программе.