scanny / python-pptx

Create Open XML PowerPoint documents in Python

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

avipek10 opened this issue · comments

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.

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:

  • When .h3d is inserted by drag-and-drop, the prog_id is set to Package as the application is unknown, but if you know the prog_id for HyperWorks, you can replace that.
  • You can add icon_file as well for better aesthetics.

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…

sorry it did not upload the picture last time.

h3d_embed_error