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

حلول أخرى

الحل 1: استبدال رسالة “Embedded OLE Object” بصورة

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

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 جديدة

الحل 2: إنشاء إضافة لبرنامج PowerPoint

يمكنك أيضًا إنشاء إضافة لبرنامج Microsoft PowerPoint تقوم بتحديث جميع كائنات OLE عند فتح العروض التقديمية في البرنامج.