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:

OLE objektum üzenet

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.

OLE objektum > Szerkesztés

A PowerPoint ekkor megnyitja a beágyazott OLE objektumot.

OLE objektum adatok

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.

OLE objektum előnézet

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:

Új OLE objektum kép

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.