ปัญหาการแสดงตัวอย่างอ็อบเจ็กต์เมื่อเพิ่ม OleObjectFrame

Introduction

โดยใช้ Aspose.Slides for Java เมื่อคุณเพิ่ม OleObjectFrame ไปยังสไลด์ จะมีข้อความ “EMBEDDED OLE OBJECT” แสดงบนสไลด์ผลลัพธ์ ข้อความนี้ตั้งใจไว้และไม่ใช่บัก

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการทำงานกับออบเจ็กต์ OLE ดูที่ Manage OLE.

Explanation and Solution

Aspose.Slides แสดงข้อความ “EMBEDDED OLE OBJECT” เพื่อแจ้งให้คุณทราบว่าออบเจ็กต์ OLE ได้ถูกเปลี่ยนแปลงและภาพตัวอย่างต้องได้รับการอัปเดต

ตัวอย่างเช่น หากคุณเพิ่มแผนภูมิ Microsoft Excel เป็น OleObjectFrame ไปยังสไลด์ (สำหรับรายละเอียดเพิ่มเติม ดูบทความ “Manage OLE”) แล้วเปิดงานนำเสนอใน Microsoft PowerPoint คุณจะเห็นภาพนี้บนสไลด์:

OLE object message

หากคุณต้องการตรวจสอบและยืนยันว่าออบเจ็กต์ OLE ของคุณถูกเพิ่มไปยังสไลด์แล้ว คุณต้องดับเบิลคลิกที่ข้อความ “EMBEDDED OLE OBJECT” หรือคุณสามารถคลิกขวาที่ข้อความและเลือกตัวเลือก Object > Edit

OLE object > Edit

PowerPoint จากนั้นจะเปิดออบเจ็กต์ OLE ที่ฝังอยู่

OLE object data

สไลด์อาจยังคงแสดงข้อความ “EMBEDDED OLE OBJECT” อยู่ เมื่อคุณคลิกรูปออบเจ็กต์ OLE ตัวอย่างสไลด์จะอัปเดตและข้อความ “EMBEDDED OLE OBJECT” จะถูกแทนที่ด้วยภาพจริงของออบเจ็กต์ OLE

OLE object preview

ตอนนี้คุณอาจต้องการบันทึกงานนำเสนอของคุณเพื่อให้แน่ใจว่าภาพของ OLE Object ได้รับการอัปเดตอย่างถูกต้อง วิธีนี้หลังจากบันทึกงานนำเสนอแล้ว เมื่อคุณเปิดงานนำเสนออีกครั้ง คุณจะไม่เห็นข้อความ “EMBEDDED OLE OBJECT”

Other Solution

หากคุณไม่ต้องการลบข้อความ “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 จะเปลี่ยนเป็นดังนี้:

New OLE object image