scanny / python-pptx

Create Open XML PowerPoint documents in Python
MIT License
2.39k stars 518 forks source link

How to embed an .h3d (Hyperworks output file) file? #967

Open avipek10 opened 5 months ago

avipek10 commented 5 months ago

I am trying to use the pptx python package to programmatically embed an existing h3d file (Hyperworks output file) into a power point presentation.

I know it can be done manually by drag and drop the file into the power point but I would like to do it programmatically.

MizsakPeterEcon commented 5 months ago

Hi @avipek10! To embed files into PowerPoint presentation, you can use the following function: https://python-pptx.readthedocs.io/en/stable/api/shapes.html#pptx.shapes.shapetree.SlideShapes.add_ole_object

Here is a basic example to do so:

from pptx import Presentation
from pptx.util import Inches

prs = Presentation()
slide_layout = prs.slide_layouts[5]  # Title and Content layout
slide = prs.slides.add_slide(slide_layout)

slide.shapes.title.text = "Adding h3d file"
path_to_h3d = "test.h3d"
slide.shapes.add_ole_object(
    object_file=path_to_h3d, prog_id="Package", left=Inches(2), top=Inches(2)
)
prs.save("add_h3d.pptx")

Further improvement possibilities:

avipek10 commented 5 months ago

Thank for the response. It did embed something but when double click inside the power point I get an error message.

![Uploading h3d_embed_error.png…]()

avipek10 commented 5 months ago

sorry it did not upload the picture last time.

h3d_embed_error