Probleem met Voorbeeldweergave van Object bij Toevoegen van OleObjectFrame

Inleiding

Met Aspose.Slides voor C++ toont het toevoegen van een OleObjectFrame aan een dia een melding “EMBEDDED OLE OBJECT” op de uitvoerdia. Deze melding is opzettelijk en GEEN fout.

Voor meer informatie over het werken met OLE‑objecten, zie Manage OLE.

Uitleg en Oplossing

Aspose.Slides geeft de melding “EMBEDDED OLE OBJECT” weer om u te informeren dat het OLE‑object is gewijzigd en dat de voorbeeldafbeelding moet worden bijgewerkt.

Bijvoorbeeld, als u een Microsoft Excel‑grafiek toevoegt als een OleObjectFrame aan een dia (voor meer details, zie het artikel “Manage OLE”) en vervolgens de presentatie opent in Microsoft PowerPoint, ziet u deze afbeelding op de dia:

OLE object message

Als u wilt controleren en bevestigen dat uw OLE‑object aan de dia is toegevoegd, moet u dubbelklikken op de “EMBEDDED OLE OBJECT”‑melding, of u kunt er met de rechtermuisknop op klikken en de optie Object > Edit kiezen.

OLE object > Edit

PowerPoint opent vervolgens het ingebedde OLE‑object.

OLE object data

De dia kan de melding “EMBEDDED OLE OBJECT” behouden. Zodra u op het OLE‑object klikt, wordt de voorbeeldweergave van de dia bijgewerkt en wordt de melding “EMBEDDED OLE OBJECT” vervangen door de daadwerkelijke afbeelding van het OLE‑object.

OLE object preview

Nu wilt u wellicht uw presentatie opslaan om ervoor te zorgen dat de afbeelding van het OLE‑object correct wordt bijgewerkt. Op die manier ziet u, nadat u de presentatie hebt opgeslagen en opnieuw opent, de melding “EMBEDDED OLE OBJECT” NIET.

Andere Oplossingen

Oplossing 1: Vervang de “Embedded OLE Object”‑melding door een afbeelding

Als u de melding “EMBEDDED OLE OBJECT” niet wilt verwijderen door de presentatie in PowerPoint te openen en vervolgens op te slaan, kunt u de melding vervangen door uw gewenste voorbeeldafbeelding. De volgende code‑regels tonen het proces:

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

De dia die de OleObjectFrame bevat, verandert vervolgens in het volgende:

New OLE object image

Oplossing 2: Maak een add‑on voor PowerPoint

U kunt ook een add‑on voor Microsoft PowerPoint maken die alle OLE‑objecten bijwerkt wanneer u presentaties in het programma opent.