Objektum előnézeti probléma OleObjectFrame hozzáadásakor
Bevezetés
Az Aspose.Slides for PHP via Java használatakor, amikor egy OleObjectFrame keretet adunk egy diára, egy „EMBEDDED OLE OBJECT” üzenet jelenik meg a kimeneti dián. Ez az üzenet szándékos és NEM hiba.
További információk az OLE objektumok kezeléséről a Manage OLE oldalon találhatók.
Magyarázat és megoldás
Az Aspose.Slides a „EMBEDDED OLE OBJECT” üzenetet jeleníti meg, hogy jelezze, az OLE objektum módosult és a előnézeti kép frissítésre szorul.
Például, ha egy Microsoft Excel diagramot adunk hozzá egy OleObjectFrame keretként a diára (a „Manage OLE” cikkben részletezve), majd megnyitjuk a bemutatót a Microsoft PowerPointban, a következő képet látjuk a dián:

Ha ellenőrizni és megerősíteni szeretnénk, hogy az OLE objektum valóban a diára került, duplán kell kattintani a „EMBEDDED OLE OBJECT” üzenetre, vagy jobb‑klikk után a Object > Edit lehetőséget választani.

A PowerPoint ekkor megnyitja a beágyazott OLE objektumot.

A dia megtarthatja a „EMBEDDED OLE OBJECT” üzenetet. Amint rákattintunk az OLE objektumra, a dia előnézete frissül, és a „EMBEDDED OLE OBJECT” üzenet helyett megjelenik az OLE objektum tényleges képe.

Most érdemes elmenteni a bemutatót, hogy az OLE objektum képe helyesen frissüljön. Így a mentés után a bemutató újbóli megnyitásakor már nem jelenik meg a „EMBEDDED OLE OBJECT” üzenet.
Egyéb megoldások
Megoldás 1: A „Embedded OLE Object” üzenet cseréje képre
Ha nem szeretnénk a PowerPointban megnyitni és menteni a bemutatót a „EMBEDDED OLE OBJECT” üzenet eltávolításához, helyettesíthetjük az üzenetet a kívánt előnézeti képpel. A következő kódsorok bemutatják a folyamatot:
$presentation = new Presentation("embeddedOLE.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$oleFrame = $slide->getShapes()->get_Item(0);
// Kép hozzáadása a prezentáció erőforrásaihoz.
$image = Images::fromFile("myImage.png");
$oleImage = $presentation->getImages()->addImage($image);
$image->dispose();
// Cím és a kép beállítása az OLE objektum előnézetéhez.
$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();
}
}
Ezután a OleObjectFrame‑et tartalmazó dia így módosul:

Megoldás 2: PowerPoint kiegészítő készítése
Készíthetünk egy Microsoft PowerPoint kiegészítőt is, amely a bemutatók megnyitásakor frissíti az összes OLE objektumot.