Problém s náhledem objektu při přidávání OleObjectFrame
Úvod
Při použití Aspose.Slides pro PHP přes Java, když přidáte OleObjectFrame do snímku, zobrazí se na výstupním snímku zpráva “EMBEDDED OLE OBJECT”. Tato zpráva je záměrná a NOT a bug.
Další informace o práci s OLE objekty najdete v článku Manage OLE.
Vysvětlení a řešení
Aspose.Slides zobrazí zprávu “EMBEDDED OLE OBJECT”, aby vás upozornil, že OLE objekt byl změněn a náhledový obrázek je potřeba aktualizovat.
Například pokud do snímku přidáte graf Microsoft Excel jako OleObjectFrame (pro podrobnosti viz článek “Manage OLE”) a poté otevřete prezentaci v Microsoft PowerPoint, uvidíte na snímku tento obrázek:

Pokud chcete zkontrolovat a potvrdit, že byl váš OLE objekt přidán do snímku, musíte dvakrát kliknout na zprávu “EMBEDDED OLE OBJECT”, nebo na ni pravým tlačítkem a zvolit možnost Object > Edit.

PowerPoint poté otevře vložený OLE objekt.

Snímek může stále zobrazovat zprávu “EMBEDDED OLE OBJECT”. Jakmile na OLE objekt kliknete, náhled snímku se aktualizuje a zpráva “EMBEDDED OLE OBJECT” je nahrazena skutečným obrázkem OLE objektu.

Nyní můžete chtít uložit prezentaci, aby se obrázek OLE objektu správně aktualizoval. Tím, po uložení prezentace, když ji znovu otevřete, již neuvidíte zprávu “EMBEDDED OLE OBJECT”.
Další řešení
Řešení 1: Nahraďte zprávu „Embedded OLE Object“ obrázkem
Pokud nechcete odstranit zprávu “EMBEDDED OLE OBJECT” otevřením prezentace v PowerPointu a jejím uložením, můžete zprávu nahradit vámi preferovaným náhledovým obrázkem. Následující řádky kódu ukazují postup:
$presentation = new Presentation("embeddedOLE.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$oleFrame = $slide->getShapes()->get_Item(0);
// Přidejte obrázek do zdrojů prezentace.
$image = Images::fromFile("myImage.png");
$oleImage = $presentation->getImages()->addImage($image);
$image->dispose();
// Nastavte název a obrázek pro náhled OLE objektu.
$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();
}
}
Snímek obsahující OleObjectFrame se následně změní na:

Řešení 2: Vytvořte doplněk pro PowerPoint
Můžete také vytvořit doplněk pro Microsoft PowerPoint, který při otevření prezentací v programu aktualizuje všechny OLE objekty.