ปัญหาการแสดงตัวอย่างวัตถุเมื่อเพิ่ม OleObjectFrame
คำนำ
เมื่อใช้ Aspose.Slides for PHP ผ่าน Java และคุณเพิ่ม OleObjectFrame ลงในสไลด์ จะมีข้อความ “EMBEDDED OLE OBJECT” แสดงบนสไลด์ผลลัพธ์ ข้อความนี้เป็นตามตั้งใจและ NOT a bug.
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการทำงานกับวัตถุ 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 จะอัปเดตอย่างถูกต้อง ด้วยวิธีนี้ หลังจากบันทึกงานนำเสนอแล้ว เมื่อคุณเปิดงานนำเสนออีกครั้ง คุณจะ NOT see the “EMBEDDED OLE OBJECT” message.
วิธีแก้ไขอื่น ๆ
วิธีแก้ 1: แทนที่ข้อความ “Embedded OLE Object” ด้วยภาพ
หากคุณไม่ต้องการลบข้อความ “EMBEDDED OLE OBJECT” ด้วยการเปิดงานนำเสนอใน PowerPoint แล้วบันทึกอีกครั้ง คุณสามารถแทนที่ข้อความด้วยภาพตัวอย่างที่คุณต้องการได้ โค้ดต่อไปนี้แสดงกระบวนการนี้:
$presentation = new Presentation("embeddedOLE.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$oleFrame = $slide->getShapes()->get_Item(0);
// เพิ่มรูปภาพไปยังทรัพยากรของงานนำเสนอ.
$image = Images::fromFile("myImage.png");
$oleImage = $presentation->getImages()->addImage($image);
$image->dispose();
// ตั้งชื่อเรื่องและรูปภาพสำหรับการแสดงตัวอย่างวัตถุ OLE.
$oleFrame->setSubstitutePictureTitle("My title");
$oleFrame->getSubstitutePictureFormat()->getPicture()->setImage($oleImage);
$oleFrame->setObjectIcon(false);
$presentation->save("embeddedOLE-newImage.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
สไลด์ที่มี OleObjectFrame จะเปลี่ยนเป็นดังนี้:

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