Problém s náhledem objektu při přidání OleObjectFrame
Úvod
Při používání Aspose.Slides pro Java, když do snímku přidáte OleObjectFrame, objeví se na výstupním snímku zpráva „EMBEDDED OLE OBJECT“. Tato zpráva je úmyslná a NEJDE o chybu.
Další informace o práci s OLE objekty naleznete v článku Manage OLE.
Vysvětlení a řešení
Aspose.Slides zobrazuje 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 kliknout pravým tlačítkem a zvolit možnost Object > Edit.

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

Snímek může zprávu „EMBEDDED OLE OBJECT“ zachovat. Jakmile kliknete na OLE objekt, náhled snímku se aktualizuje a zpráva „EMBEDDED OLE OBJECT“ bude 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 zajistíte, že po uložení prezentace a jejím opětovném otevření nebudete vidět zprávu „EMBEDDED OLE OBJECT“.
Další řešení
Řešení 1: Nahradit zprávu „Embedded OLE Object“ obrázkem
Pokud nechcete odstranit zprávu „EMBEDDED OLE OBJECT“ otevřením prezentace v PowerPointu a jejím následným uložením, můžete zprávu nahradit preferovaným náhledovým obrázkem. Následující řádky kódu ukazují postup:
Presentation presentation = new Presentation("embeddedOLE.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IOleObjectFrame oleFrame = (IOleObjectFrame) slide.getShapes().get_Item(0);
// Přidat obrázek do zdrojů prezentace.
IImage image = Images.fromFile("myImage.png");
IPPImage oleImage = presentation.getImages().addImage(image);
// Nastavit titulek 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 (presentation != null) presentation.dispose();
}
Snímek obsahující OleObjectFrame se poté změní na tento:

Řešení 2: Vytvořit 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.