Заполнитель превью объекта при добавлении OleObjectFrame

Введение

Используя Aspose.Slides для .NET, когда вы добавляете OleObjectFrame на слайд, на выходном слайде отображается сообщение “EMBEDDED OLE OBJECT”. Это сообщение является намеренным и НЕ является ошибкой.

Для получения дополнительной информации о работе с OLE-объектами см. Manage OLE.

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

Aspose.Slides отображает сообщение “EMBEDDED OLE OBJECT”, чтобы уведомить вас, что OLE-объект был изменён и изображение превью необходимо обновить.

Например, если вы добавляете диаграмму Microsoft Excel в виде OleObjectFrame на слайд (подробнее см. статью “Manage OLE”) и затем открываете презентацию в Microsoft PowerPoint, вы увидите на слайде следующее изображение:

Сообщение OLE-объекта

Если вы хотите проверить и убедиться, что ваш OLE-объект был добавлен на слайд, вам нужно дважды щёлкнуть по сообщению “EMBEDDED OLE OBJECT”, либо щёлкнуть правой кнопкой мыши по нему и выбрать пункт Object > Edit.

OLE-объект > Edit

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

Данные OLE-объекта

Слайд может сохранять сообщение “EMBEDDED OLE OBJECT”. После щелчка по OLE-объекту превью слайда обновляется, и сообщение “EMBEDDED OLE OBJECT” заменяется реальным изображением OLE-объекта.

Превью OLE-объекта

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

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

Решение 1: Заменить сообщение “Embedded OLE Object” изображением

Если вы не хотите удалять сообщение “EMBEDDED OLE OBJECT” открытием презентации в PowerPoint и последующим сохранением, вы можете заменить сообщение на предпочитаемое изображение превью. Ниже приведены строки кода, демонстрирующие процесс:

using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("embeddedOLE.pptx");

var slide = presentation.Slides[0];
var oleFrame = (IOleObjectFrame)slide.Shapes[0];

// Add an image to presentation resources.
using var imageStream = File.OpenRead("myImage.png");
var oleImage = presentation.Images.AddImage(imageStream);

// Set the image for the OLE object preview.
oleFrame.SubstitutePictureFormat.Picture.Image = oleImage;
oleFrame.IsObjectIcon = false;

presentation.Save("embeddedOLE-newImage.pptx", SaveFormat.Pptx);

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

Новое изображение OLE-объекта

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

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