ปัญหาการแสดงตัวอย่างวัตถุเมื่อเพิ่ม OleObjectFrame

บทนำ

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

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

คำอธิบายและวิธีแก้ไข

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

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

ข้อความวัตถุ OLE

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

วัตถุ OLE > แก้ไข

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: สร้าง Add-On สำหรับ PowerPoint

คุณยังสามารถสร้าง Add‑On สำหรับ Microsoft PowerPoint ที่อัปเดตวัตถุ OLE ทั้งหมดเมื่อคุณเปิดงานนำเสนอในโปรแกรมได้อีกด้วย.