Problem z podglądem obiektu przy dodawaniu OleObjectFrame

Wprowadzenie

Kiedy używasz Aspose.Slides for Python via Java, aby dodać OleObjectFrame do slajdu, na wyjściowym slajdzie wyświetlany jest 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 Zarządzaj OLE.

Wyjaśnienie i rozwiązanie

Aspose.Slides wyświetla komunikat „EMBEDDED OLE OBJECT”, aby poinformować Cię, że obiekt OLE został zmieniony i trzeba zaktualizować jego podglądowy obraz.

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

Komunikat obiektu OLE

Aby potwierdzić, że obiekt OLE został dodany do slajdu, dwukrotnie kliknij komunikat „EMBEDDED OLE OBJECT”, lub kliknij go prawym przyciskiem i wybierz Object > Edit.

Obiekt OLE > Edytuj

PowerPoint otwiera następnie wbudowany obiekt OLE.

Dane obiektu OLE

Slajd może nadal wyświetlać komunikat „EMBEDDED OLE OBJECT”. Po kliknięciu obiektu OLE podgląd slajdu zostaje zaktualizowany, a komunikat „EMBEDDED OLE OBJECT” zostaje zastąpiony rzeczywistym obrazem obiektu OLE.

Podgląd obiektu OLE

Zapisz prezentację, aby zachować zaktualizowany podglądowy obraz obiektu OLE. Po ponownym otwarciu prezentacji nie zobaczysz już komunikatu „EMBEDDED OLE OBJECT”.

Inne rozwiązanie

Jeśli nie chcesz usuwać komunikatu „EMBEDDED OLE OBJECT” poprzez otwarcie prezentacji w PowerPoint i zapisanie jej, możesz zastąpić komunikat własnym wybranym obrazem podglądu. Poniższy kod demonstruje ten proces:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Images, Presentation, SaveFormat

presentation = Presentation("embeddedOLE.pptx")
try:
    slide = presentation.getSlides().get_Item(0)
    ole_frame = slide.getShapes().get_Item(0)

    # Dodaj obraz do zasobów prezentacji.
    image = Images.fromFile("myImage.png")
    try:
        ole_image = presentation.getImages().addImage(image)
    finally:
        image.dispose()

    # Ustaw tytuł i obraz podglądu obiektu OLE.
    ole_frame.setSubstitutePictureTitle("My title")
    ole_frame.getSubstitutePictureFormat().getPicture().setImage(ole_image)
    ole_frame.setObjectIcon(False)

    presentation.save("embeddedOLE-newImage.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

Slajd zawierający OleObjectFrame zmienia się wtedy na następujący:

Nowy obraz obiektu OLE

FAQ

Dlaczego pojawia się komunikat „EMBEDDED OLE OBJECT”?

Komunikat wskazuje, że obiekt OLE został zmieniony i jego podglądowy obraz wymaga aktualizacji. To zachowanie jest zamierzone.

Jak mogę zaktualizować podgląd w PowerPoint?

Dwukrotnie kliknij komunikat lub wybierz Object > Edit, aby otworzyć wbudowany obiekt OLE. Kliknij obiekt OLE, aby zaktualizować podgląd, a następnie zapisz prezentację.

Czy mogę zastąpić komunikat bez otwierania prezentacji w PowerPoint?

Tak. Możesz przypisać wybrany obraz podglądu do obiektu OLE, jak pokazano w powyższym przykładzie kodu.