مشكلة معاينة الكائن عند إضافة 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

إذا أردت التحقق والتأكيد من أن كائن OLE قد أُضيف إلى الشريحة، عليك النقر مزدوجهً على رسالة “EMBEDDED OLE OBJECT”، أو يمكنك النقر بزر الفأرة الأيمن واختيار Object > Edit.

OLE object > Edit

ثم يفتح PowerPoint كائن OLE المضمن.

بيانات كائن OLE

قد تظل الشريحة تعرض رسالة “EMBEDDED OLE OBJECT”. بمجرد النقر على كائن OLE، يتم تحديث معاينة الشريحة وتستبدل رسالة “EMBEDDED OLE OBJECT” بالصورة الفعلية لكائن OLE.

معاينة كائن OLE

الآن، قد ترغب في حفظ العرض التقديمي لضمان تحديث صورة كائن OLE بشكل صحيح. بهذه الطريقة، بعد حفظ العرض التقديمي، عند فتحه مرة أخرى، لن ترى رسالة “EMBEDDED OLE OBJECT”.

حل آخر

إذا لم ترغب في إزالة رسالة “EMBEDDED OLE OBJECT” بفتح العرض التقديمي في PowerPoint ثم حفظه، يمكنك استبدال الرسالة بصورة المعاينة المفضلة لديك. توضح السطور البرمجية التالية العملية:

import com.aspose.slides.*;

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 إلى ما يلي:

صورة كائن OLE الجديدة