添加 OleObjectFrame 时的对象预览问题
介绍
使用 Aspose.Slides for Java 时,当您向幻灯片添加 OleObjectFrame 时,输出幻灯片上会显示 “EMBEDDED OLE OBJECT” 消息。此消息是有意的,而非错误。
有关使用 OLE 对象的更多信息,请参阅 Manage OLE。
解释和解决方案
Aspose.Slides 会显示 “EMBEDDED OLE OBJECT” 消息,以通知您 OLE 对象已更改,预览图像需要更新。
例如,如果您将 Microsoft Excel 图表作为 OleObjectFrame 添加到幻灯片中(有关详细信息,请参阅 “Manage OLE” 文章),然后在 Microsoft PowerPoint 中打开演示文稿,您将在幻灯片上看到以下图像:

如果您想检查并确认 OLE 对象已添加到幻灯片,需要双击 “EMBEDDED OLE OBJECT” 消息,或者右键单击它并选择 Object > Edit 选项。

PowerPoint 随后打开嵌入的 OLE 对象。

幻灯片可能仍保留 “EMBEDDED OLE OBJECT” 消息。单击 OLE 对象后,幻灯片预览将更新,且 “EMBEDDED OLE OBJECT” 消息会被 OLE 对象的实际图像替代。

现在,您可能希望保存演示文稿,以确保 OLE 对象的图像正确更新。这样,在保存演示文稿后再次打开时,您将不会看到 “EMBEDDED OLE OBJECT” 消息。
其他解决方案
解决方案 1:用图像替换 “Embedded OLE Object” 消息
如果您不想通过在 PowerPoint 中打开演示文稿并保存来移除 “EMBEDDED OLE OBJECT” 消息,可以将该消息替换为您首选的预览图像。下面的代码行演示了该过程:
Presentation presentation = new Presentation("embeddedOLE.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IOleObjectFrame oleFrame = (IOleObjectFrame) slide.getShapes().get_Item(0);
// 将图像添加到演示文稿资源。
IImage image = Images.fromFile("myImage.png");
IPPImage oleImage = presentation.getImages().addImage(image);
// 为 OLE 对象预览设置标题和图像。
oleFrame.setSubstitutePictureTitle("My title");
oleFrame.getSubstitutePictureFormat().getPicture().setImage(oleImage);
oleFrame.setObjectIcon(false);
presentation.save("embeddedOLE-newImage.pptx", SaveFormat.Pptx);
} finally {
if (presentation != null) presentation.dispose();
}
包含 OleObjectFrame 的幻灯片随后会变为如下所示:

解决方案 2:为 PowerPoint 创建插件
您还可以为 Microsoft PowerPoint 创建插件,在程序中打开演示文稿时更新所有 OLE 对象。