Problem z podglądem obiektu przy dodawaniu OleObjectFrame

Wprowadzenie

Korzystając z Aspose.Slides for Java, gdy dodasz OleObjectFrame do slajdu, na wyjściowym slajdzie pojawia się komunikat „EMBEDDED OLE OBJECT”. Ten komunikat jest zamierzony i NIE jest błędem.

Aby uzyskać więcej informacji na temat pracy z obiektami OLE, zobacz Manage OLE.

Wyjaśnienie i rozwiązanie

Aspose.Slides wyświetla komunikat „EMBEDDED OLE OBJECT”, aby powiadomić Cię, że obiekt OLE został zmieniony i obraz podglądu musi zostać zaktualizowany.

Na przykład, jeśli dodasz wykres Microsoft Excel jako OleObjectFrame do slajdu (po więcej szczegółów zobacz artykuł „Manage OLE”) i następnie otworzysz prezentację w Microsoft PowerPoint, zobaczysz ten obraz na slajdzie:

Komunikat obiektu OLE

Jeśli chcesz sprawdzić i potwierdzić, że obiekt OLE został dodany do slajdu, musisz dwukrotnie kliknąć komunikat „EMBEDDED OLE OBJECT”, albo możesz kliknąć go prawym przyciskiem myszy i wybrać opcję Object > Edit.

Obiekt OLE > Edytuj

PowerPoint otwiera wtedy osadzony obiekt OLE.

Dane obiektu OLE

Slajd może nadal wyświetlać komunikat „EMBEDDED OLE OBJECT”. Gdy klikniesz obiekt OLE, podgląd slajdu zostaje zaktualizowany i komunikat „EMBEDDED OLE OBJECT” zostaje zastąpiony rzeczywistym obrazem obiektu OLE.

Podgląd obiektu OLE

Teraz możesz chcieć zapisać prezentację, aby upewnić się, że obraz obiektu OLE zostanie poprawnie zaktualizowany. W ten sposób, po zapisaniu prezentacji, przy ponownym otwarciu nie zobaczysz komunikatu „EMBEDDED OLE OBJECT”.

Inne rozwiązanie

Jeśli nie chcesz usuwać komunikatu „EMBEDDED OLE OBJECT” poprzez otwarcie prezentacji w PowerPoint i jej zapisanie, możesz zastąpić komunikat wybranym przez siebie obrazem podglądu. Poniższe linie kodu demonstrują ten proces:

import com.aspose.slides.*;

Presentation presentation = new Presentation("embeddedOLE.pptx");
try {
    ISlide slide = presentation.getSlides().get_Item(0);
    IOleObjectFrame oleFrame = (IOleObjectFrame) slide.getShapes().get_Item(0);

    // Dodaj obraz do zasobów prezentacji.
    IImage image = Images.fromFile("myImage.png");
    IPPImage oleImage = presentation.getImages().addImage(image);

    // Ustaw tytuł i obraz podglądu obiektu OLE.
    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();    
}

Slajd zawierający OleObjectFrame zostaje wtedy zmieniony na następujący:

Nowy obraz obiektu OLE