OLE Object
Contents
[
Hide
]
This article demonstrates how to embed a file as an OLE object and update its data using Aspose.Slides for Python via Java.
Install the package as described in Installation. Each example imports asposeslides before starting the JVM, then imports the API after the JVM is running.
Add an OLE Object
Embed a PDF file into the presentation.
from pathlib import Path
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import OleEmbeddedDataInfo, Presentation
presentation = Presentation()
try:
slide = presentation.getSlides().get_Item(0)
pdf_data = Path("doc.pdf").read_bytes()
java_pdf_data = jpype.JArray(jpype.JByte)(pdf_data)
data_info = OleEmbeddedDataInfo(java_pdf_data, "pdf")
ole_frame = slide.getShapes().addOleObjectFrame(20, 20, 50, 50, data_info)
finally:
presentation.dispose()
Access an OLE Object
Retrieve the first OLE object frame on a slide.
from pathlib import Path
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import OleEmbeddedDataInfo, OleObjectFrame, Presentation
presentation = Presentation()
try:
slide = presentation.getSlides().get_Item(0)
pdf_data = Path("doc.pdf").read_bytes()
java_pdf_data = jpype.JArray(jpype.JByte)(pdf_data)
data_info = OleEmbeddedDataInfo(java_pdf_data, "pdf")
slide.getShapes().addOleObjectFrame(20, 20, 50, 50, data_info)
first_ole_frame = None
for shape in slide.getShapes():
if isinstance(shape, OleObjectFrame):
first_ole_frame = shape
break
if first_ole_frame is None:
print("The slide contains no OLE object frames.")
finally:
presentation.dispose()
Remove an OLE Object
Delete an embedded OLE object from the slide.
from pathlib import Path
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import OleEmbeddedDataInfo, Presentation
presentation = Presentation()
try:
slide = presentation.getSlides().get_Item(0)
pdf_data = Path("doc.pdf").read_bytes()
java_pdf_data = jpype.JArray(jpype.JByte)(pdf_data)
data_info = OleEmbeddedDataInfo(java_pdf_data, "pdf")
ole_frame = slide.getShapes().addOleObjectFrame(20, 20, 50, 50, data_info)
slide.getShapes().remove(ole_frame)
finally:
presentation.dispose()
Update OLE Object Data
Replace the data embedded in an existing OLE object.
from pathlib import Path
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import OleEmbeddedDataInfo, Presentation
presentation = Presentation()
try:
slide = presentation.getSlides().get_Item(0)
pdf_data = Path("doc.pdf").read_bytes()
java_pdf_data = jpype.JArray(jpype.JByte)(pdf_data)
data_info = OleEmbeddedDataInfo(java_pdf_data, "pdf")
ole_frame = slide.getShapes().addOleObjectFrame(20, 20, 50, 50, data_info)
new_data = Path("Picture.png").read_bytes()
java_new_data = jpype.JArray(jpype.JByte)(new_data)
new_data_info = OleEmbeddedDataInfo(java_new_data, "png")
ole_frame.setEmbeddedData(new_data_info)
finally:
presentation.dispose()