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

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

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

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