在加入 OleObjectFrame 時的物件預覽問題
Contents
[
Hide
]
簡介
使用 Aspose.Slides for C++ 時,當您將 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 物件後,投影片預覽會更新,該訊息會被 OLE 物件的實際圖像取代。

現在,您可能想儲存簡報,以確保 OLE 物件的圖像正確更新。如此一來,儲存後再次開啟簡報時,就不會看到「EMBEDDED OLE OBJECT」訊息。
其他解決方案
解決方案 1:以圖像取代「Embedded OLE Object」訊息
如果您不想透過在 PowerPoint 中開啟簡報再儲存的方式移除「EMBEDDED OLE OBJECT」訊息,您可以以自己偏好的預覽圖像取代該訊息。以下程式碼行示範了此過程:
auto presentation = MakeObject<Presentation>(u"embeddedOLE.pptx");
auto slide = presentation->get_Slide(0);
auto oleFrame = ExplicitCast<IOleObjectFrame>(slide->get_Shape(0));
// Add an image to presentation resources.
auto imageStream = File::OpenRead(u"myImage.png");
auto oleImage = presentation->get_Images()->AddImage(imageStream);
imageStream->Dispose();
// Set a title and the image for the OLE object preview.
oleFrame->set_SubstitutePictureTitle(u"My title");
oleFrame->get_SubstitutePictureFormat()->get_Picture()->set_Image(oleImage);
oleFrame->set_IsObjectIcon(false);
presentation->Save(u"embeddedOLE-newImage.pptx", SaveFormat::Pptx);
presentation->Dispose();
包含 OleObjectFrame 的投影片會變更為下圖:

解決方案 2:為 PowerPoint 建立外掛程式
您也可以為 Microsoft PowerPoint 建立外掛程式,於開啟簡報時自動更新所有 OLE 物件。