[ANN] PPTX.jl - A new package to generate PowerPoint© .pptx files

We are happy to announce the release of PPTX.jl, a straightforward package to generate PowerPoint presentations with a few lines of Julia code. It’s also the first ever open sourced package from ASML.

Those who work in corporate environments know about the importance of PowerPoint presentations in such organizations. Unfortunately the Julia community did not yet provide a simple package to create PowerPoint presentations directly from within Julia. It was only possible to create presentations indirectly, for example via Quatro. So we decided to build a pure Julia package ourselves. We found out that a .pptx is just a zip file with a few XML files, how hard can it be?

Currently we have a barebones implementation, which can create basic presentations, but we’d like to add further features and user friendliness. Feel free to contribute!

We currently support:

  • the writing of a new PowerPoint .pptx file
  • adding slides with titles
  • adding plain text boxes
  • adding pictures from a file
  • adding tables with a default style, for example from a DataFrame
  • you can choose a .pptx file as a template

The documentation has a simple example usage of the above and the API.


We’ve already received a nice fix for automatic opening of the pptx on MacOS after writing, see PR-19. I’ve registered version 0.5.1 with the fix.

1 Like

Hey Matthijs, great add-on to the community! :fist:


Thank you for this awesome package! Are there plans for reading/editing existing .pptx files?

1 Like

Does this work for Linux systems btw?

1 Like

No plans for reading yet, but feel free to open a Github discussion about this topic. Currently we do not build up a complete model of the .pptx content inside Julia, just the bare minimum to add shapes to an existing (empty) template.

Yes, tested on the latest Ubuntu (via Github actions) and RHEL8.

Feel free to open an issue if something doesn’t work. The only issue we encountered occasionally is opening the file after writing, but this is optional an optional step. File writing itself should work.