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

บทนำ

เมื่อใช้ Aspose.Slides สำหรับ C++ และคุณเพิ่ม 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 > แก้ไข

PowerPoint จากนั้นเปิดอ็อบเจ็กต์ OLE ที่ฝังไว้:

ข้อมูลอ็อบเจ็กต์ OLE

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

ตัวอย่างอ็อบเจ็กต์ OLE

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

วิธีแก้ไขอื่น ๆ

วิธีแก้ไข 1: แทนที่ข้อความ “Embedded OLE Object” ด้วยภาพ

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

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 จะเปลี่ยนเป็นแบบนี้:

ภาพอ็อบเจ็กต์ OLE ใหม่

วิธีแก้ไข 2: สร้างส่วนเสริมสำหรับ PowerPoint

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