OleObjectFrame Eklerken Nesne Ön İzleme Sorunu

Giriş

Aspose.Slides for C++ kullanırken bir slayta OleObjectFrame eklediğinizde, çıktı slaytında “EMBEDDED OLE OBJECT” mesajı gösterilir. Bu mesaj kasıtlıdır ve bir hata DEĞİLDİR.

OLE nesneleriyle çalışmak hakkında daha fazla bilgi için OLE’yi Yönet sayfasına bakın.

Açıklama ve Çözüm

Aspose.Slides, OLE nesnesinin değiştirildiğini ve ön izleme görüntüsünün güncellenmesi gerektiğini bildirmek için “EMBEDDED OLE OBJECT” mesajını gösterir.

Örneğin, bir Microsoft Excel grafiğini bir OleObjectFrame olarak slayta ekleyip (daha fazla detay için “OLE’yi Yönet” makalesine bakın) sunumu Microsoft PowerPoint ile açarsanız, slaytta şu görseli görürsünüz:

OLE nesne mesajı

OLE nesnenizin slayta eklendiğini kontrol etmek ve doğrulamak istiyorsanız, “EMBEDDED OLE OBJECT” mesajına çift tıklamanız gerekir; ya da üzerine sağ tıklayıp Object > Edit seçeneğini kullanabilirsiniz.

OLE nesne > Düzenle

PowerPoint ardından gömülü OLE nesnesini açar.

OLE nesne verileri

Slayt “EMBEDDED OLE OBJECT” mesajını tutabilir. OLE nesnesine tıkladığınızda, slayt ön izlemesi güncellenir ve “EMBEDDED OLE OBJECT” mesajı OLE nesnesinin gerçek görüntüsü ile değiştirilir.

OLE nesne ön izlemesi

Şimdi, OLE Nesnesinin görüntüsünün doğru şekilde güncellenmesini sağlamak için sununuzu kaydetmek isteyebilirsiniz. Bu şekilde, sunuyu kaydettikten sonra tekrar açtığınızda “EMBEDDED OLE OBJECT” mesajını GÖRMEYECEKSİNİZ.

Diğer Çözümler

Çözüm 1: “Embedded OLE Object” Mesajını Bir Görüntüyle Değiştirmek

Sunuyu PowerPoint’te açıp kaydederek “EMBEDDED OLE OBJECT” mesajını kaldırmak istemiyorsanız, mesajı tercih ettiğiniz ön izleme görüntüsüyle değiştirebilirsiniz. Aşağıdaki kod satırları bu işlemi gösterir:

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 içeren slayt daha sonra şu şekilde değişir:

Yeni OLE nesne görüntüsü

Çözüm 2: PowerPoint için Bir Eklenti Oluşturmak

Microsoft PowerPoint için, programda bir sunu açtığınızda tüm OLE nesnelerini güncelleyen bir eklenti de oluşturabilirsiniz.