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

**URL:** <https://discourse.julialang.org/t/ann-pptx-jl-a-new-package-to-generate-powerpoint-pptx-files/94285>\
**Category:** Package Announcements\
**Tags:** package, slides\
**Created:** [February 8, 2023, 3:21pm UTC](https://discourse.julialang.org/t/ann-pptx-jl-a-new-package-to-generate-powerpoint-pptx-files/94285 "2023-02-08T15:21:04Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![MatthijsCox](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/matthijscox/32/42831_2.png) [@MatthijsCox](https://discourse.julialang.org/u/MatthijsCox)\
**Post date:** [February 8, 2023, 3:21pm UTC](https://discourse.julialang.org/t/ann-pptx-jl-a-new-package-to-generate-powerpoint-pptx-files/94285/1 "2023-02-08T15:21:04Z")

</div>

We are happy to announce the release of [PPTX.jl](https://github.com/ASML-Labs/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](https://www.asml.com).

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](https://asml-labs.github.io/PPTX.jl/dev/) has a simple example usage of the above and the API.

---

<div class="post-metadata">

**Author:** ![MatthijsCox](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/matthijscox/32/42831_2.png) [@MatthijsCox](https://discourse.julialang.org/u/MatthijsCox)\
**Post date:** [February 9, 2023, 2:23pm UTC](https://discourse.julialang.org/t/ann-pptx-jl-a-new-package-to-generate-powerpoint-pptx-files/94285/2 "2023-02-09T14:23:51Z")

</div>

We’ve already received a nice fix for automatic opening of the pptx on MacOS after writing, see [PR-19](https://github.com/ASML-Labs/PPTX.jl/pull/19). I’ve registered version 0.5.1 with the fix.

---

<div class="post-metadata">

**Author:** ![FcMarz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fcmarz/32/46891_2.png) [@FcMarz](https://discourse.julialang.org/u/FcMarz)\
**Post date:** [February 14, 2023, 1:09pm UTC](https://discourse.julialang.org/t/ann-pptx-jl-a-new-package-to-generate-powerpoint-pptx-files/94285/3 "2023-02-14T13:09:15Z")

</div>

Hey Matthijs, great add-on to the community! ✊

---

<div class="post-metadata">

**Author:** ![Iulian.Cioarca](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/iulian.cioarca/32/30166_2.png) [@Iulian.Cioarca](https://discourse.julialang.org/u/Iulian.Cioarca)\
**Post date:** [February 14, 2023, 1:43pm UTC](https://discourse.julialang.org/t/ann-pptx-jl-a-new-package-to-generate-powerpoint-pptx-files/94285/4 "2023-02-14T13:43:57Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![TheCedarPrince](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thecedarprince/32/17323_2.png) [@TheCedarPrince](https://discourse.julialang.org/u/TheCedarPrince)\
**Post date:** [February 14, 2023, 2:08pm UTC](https://discourse.julialang.org/t/ann-pptx-jl-a-new-package-to-generate-powerpoint-pptx-files/94285/5 "2023-02-14T14:08:02Z")

</div>

Does this work for Linux systems btw?

---

<div class="post-metadata">

**Author:** ![MatthijsCox](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/matthijscox/32/42831_2.png) [@MatthijsCox](https://discourse.julialang.org/u/MatthijsCox)\
**Post date:** [February 15, 2023, 8:06am UTC](https://discourse.julialang.org/t/ann-pptx-jl-a-new-package-to-generate-powerpoint-pptx-files/94285/6 "2023-02-15T08:06:33Z")

</div>

> [@Iulian.Cioarca](#):
>
> Thank you for this awesome package! Are there plans for reading/editing existing .pptx files?

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.

---

<div class="post-metadata">

**Author:** ![MatthijsCox](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/matthijscox/32/42831_2.png) [@MatthijsCox](https://discourse.julialang.org/u/MatthijsCox)\
**Post date:** [February 15, 2023, 8:09am UTC](https://discourse.julialang.org/t/ann-pptx-jl-a-new-package-to-generate-powerpoint-pptx-files/94285/7 "2023-02-15T08:09:33Z")

</div>

> [@TheCedarPrince](#):
>
> Does this work for Linux systems btw?

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.
