Objektum előnézeti probléma OleObjectFrame hozzáadásakor

Bevezetés

Az Aspose.Slides for C++ használatával, amikor egy OleObjectFrame keretet ad egy diára, az „EMBEDDED OLE OBJECT” üzenet jelenik meg a kimeneti dián. Ez az üzenet szándékos, és NEM hiba.

További információkért az OLE‑objektumok kezeléséről, lásd a Manage OLE oldalt.

Magyarázat és megoldás

Az Aspose.Slides megjeleníti az „EMBEDDED OLE OBJECT” üzenetet, hogy jelezze, az OLE‑objektum módosult és a előnézeti képet frissíteni kell.

Például, ha egy Microsoft Excel diagramot adsz egy OleObjectFrame kerethez egy dián (további részletekért lásd a „Manage OLE” cikket), majd megnyitod a bemutatót a Microsoft PowerPointban, a dián ezt a képet fogod látni:

OLE object message

Ha ellenőrizni és megerősíteni szeretnéd, hogy az OLE‑objektum hozzá lett adva a diához, dupla‑kattintással kell a „EMBEDDED OLE OBJECT” üzenetre, vagy jobb‑klikkelve rá, majd a Object > Edit lehetőségen keresztül.

OLE object > Edit

A PowerPoint ezután megnyitja a beágyazott OLE‑objektumot.

OLE object data

A dia megtarthatja a „EMBEDDED OLE OBJECT” üzenetet. Miután rákattintasz az OLE‑objektumra, a dia előnézete frissül, és a „EMBEDDED OLE OBJECT” üzenet helyére az OLE‑objektum tényleges képe kerül.

OLE object preview

Most lehet, hogy el szeretnéd menteni a bemutatót, hogy biztosítsd az OLE‑objektum képének helyes frissülését. Így a bemutató mentése után, amikor újra megnyitod, már NEM fogod látni a „EMBEDDED OLE OBJECT” üzenetet.

Egyéb megoldások

Megoldás 1: A „Embedded OLE Object” üzenet helyettesítése egy képpel

Ha nem szeretnéd eltávolítani a „EMBEDDED OLE OBJECT” üzenetet a bemutató PowerPointban való megnyitásával és mentésével, helyettesítheted a üzenetet a kívánt előnézeti képpel. Az alábbi kódsorok bemutatják a folyamatot:

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();

A OleObjectFrame‑t tartalmazó dia ezután erre változik:

New OLE object image

Megoldás 2: Add‑on készítése a PowerPointhoz

Létrehozhatsz egy Microsoft PowerPoint‑bővítményt is, amely a bemutatók megnyitásakor frissíti az összes OLE‑objektumot.