Converting Power Point
Posted by jpluimers on 2025/01/15
I have a lot of old Power Point slide decks that I want to reuse in current presentations. By now however, I learned prepare all my presentation stuff in either Markdown or reStructuredText: far easier to publish and put under version control.
After searching, I could only find one tool that is still maintained doing a decent job doing a PowerPoint to Markdown conversion: [Wayback/Archive] GitHub – ssine/pptx2md: a pptx to markdown converter. The tools which works great, in big part of PowerPoint content being highly structured with styles like title, subtitle and various heading levels and content types.
The thing it does not document is the prerequisites, which are these:
- a
venv(which, despite having used Python quite often, but not proficient in it, still makes me nervous: one forgotten step and you pip everything in your global environment).This links helps me every time [Wayback/Archive] Install packages in a virtual environment using pip and venv – Python Packaging User Guide. From it, I created this little table:
Steps for setting up and using a Python virtual environment Step *n*x/MacOS Windows Comment 1. python3 -m venv .venvpy -m venv .venvOnly needed once 2. source .venv/bin/activate.venv\Scripts\activateSwitch to virtual environment 3. which pythonwhere pythonCheck if python is used from the virtual environment (should result in
.venv/bin/pythonon *n*x/MacOS or
.venv\Scripts\pythonon Windows)4. which pipwhere pipCheck if pip is used from the virtual environment (should result in
.venv/bin/pipon *n*x/MacOS or
.venv\Scripts\pipon Windows)5. ./.venv/bin/pptx2md</precode
.venv\bin\pptx2mdForce a module which didn’t add itself to the path when installed via pip 6. deactivatedeactivateLeave the virtual environment - missed during
pip install pptx2md(in order I discovered them):- [Wayback/Archive] numpy · PyPI: used by [Wayback/Archive] pptx2md/pptx2md/parser.py at master · ssine/pptx2md · GitHub
pip install numpy
- [Wayback/Archive] matplotlib · PyPI: used by [Wayback/Archive] pptx2md/pptx2md/columns.py at master · ssine/pptx2md · GitHub
pip install matplotlib
- [Wayback/Archive] scipy · PyPI: used by [Wayback/Archive] pptx2md/pptx2md/utils_optim.py at master · ssine/pptx2md · GitHub
pip install scipy
- [Wayback/Archive] Wand · PyPI: used by [Wayback/Archive] pptx2md/pptx2md/image.py at master · ssine/pptx2md · GitHub and also by [Wayback/Archive] pptx2md/pptx2md/parser.py at master · ssine/pptx2md · GitHub
pip install wand
- Putting the tool in the path; I had to execute it using
./.venv/bin/pptx2md
- [Wayback/Archive] numpy · PyPI: used by [Wayback/Archive] pptx2md/pptx2md/parser.py at master · ssine/pptx2md · GitHub
Future enhancements
I do need to look at some of the forks at [Wayback/Archive] Forks · ssine/pptx2md · GitHub so see if they cover a bit I am missing: converting text in PowerPoint having a fixed-pitch font into markdown ` (back-tick) code marked bits (similar to now now bold, italic, and hyperlinks are supported). If it is not there, I might add it in the future.
Related code portions to search for are handling of is_accent and is_strong in [Wayback/Archive] pptx2md/pptx2md/parser.py at master · ssine/pptx2md · GitHub and get_accent and get_strong in [Wayback/Archive] pptx2md/pptx2md/outputter.py at master · ssine/pptx2md · GitHub.
Queries
- [Wayback/Archive] pptx to md – Google Suche
- [Wayback/Archive] pptx to markdown – Google Search
- [Wayback/Archive] pptx to rst – Sök på Google
- [Wayback/Archive] pptx to restructuredtext – Google Suche
- [Wayback/Archive] python venv pip install – Google Search
- [Wayback/Archive] convert pptx to html – Google Search
- [Wayback/Archive] pptx to text – Google Suche
Actually the last two queries query was what I started with. They resulted in a few interesting sites for other PowerPoint conversions:
- [Wayback/Archive] Presentation Converter (Online & Free) — Convertio
- [Wayback/Archive] PPTX (Microsoft PowerPoint) Conversion Types — Convertio
- [Wayback/Archive] PPTX to HTML (Online & Free) — Convertio
- [Wayback/Archive] PPTX to TXT (Online & Free) — Convertio
- [Wayback/Archive] CloudConvert
- [Wayback/Archive] PPTX Converter | CloudConvert
- [Wayback/Archive] PPTX to TXT | CloudConvert
Final words
Note if you are into Ruby, there is also [Wayback/Archive] GitHub – clerk67/ppt2rst: Convert PowerPoint .ppt(x) files to reStructuredText .rst files, which has very few features and has not been maintained in almost 7 years.
Its main source is in [Wayback/Archive] ppt2rst/ppt2rst.rb at master · clerk67/ppt2rst · GitHub.
Anyway, it allowed me to convert the pptx source of 20121026-Hidden-Gems-of-Delphi-Language-Operator-Overloading-and-Class-Record-helpers.pdf to markdown and work from there. It did not matter much which conversion I used:
-
./.venv/bin/pptx2md --enable-slides 20121026-Hidden-Gems-of-Delphi-Language-Operator-Overloading-and-Class-Record-helpers.pptx -o 20121026-Hidden-Gems-of-Delphi-Language-Operator-Overloading-and-Class-Record-helpers.slides.md -
./.venv/bin/pptx2md 20121026-Hidden-Gems-of-Delphi-Language-Operator-Overloading-and-Class-Record-helpers.pptx -o 20121026-Hidden-Gems-of-Delphi-Language-Operator-Overloading-and-Class-Record-helpers.md
The first html try was at [Wayback/Archive] Download your file — Convertio which resulted in a fat HTML file which loaded slowly and was hard to copy/paste content from.
That made me search for markdown or reStructuredText solutions, of which pptx2md worked better than hoped for.
Interesting forks:
- [Wayback/Archive] GitHub – avldya/pptx2md: a pptx to markdown converter ads better exception/error handling:
[Wayback/Archive] Comparing ssine:master…avldya:master · ssine/pptx2md · GitHub
- [Wayback/Archive] GitHub – heysam-ai/pptx2md: a pptx to markdown converter ads heysam output support:
[Wayback/Archive] Comparing ssine:master…heysam-ai:master · ssine/pptx2md · GitHub
- [Wayback/Archive] GitHub – JunzoKamahara/pptx2aituberkitscript: a pptx to aituberkit presentation markdown converter ads aituberkit support:
[Wayback/Archive] Comparing ssine:master…JunzoKamahara:master · ssine/pptx2md · GitHub
- [Wayback/Archive] GitHub – mayhemheroes/pptx2md: a pptx to markdown converter ads mayhem support:
[Wayback/Archive] Comparing ssine:master…mayhemheroes:master · ssine/pptx2md · GitHub from [Wayback/Archive] GitHub – capuanob/pptx2md at mayhem -> [Wayback/Archive] Comparing ssine:master…capuanob:mayhem · ssine/pptx2md · GitHub
- [Wayback/Archive] GitHub – scope-repos/pptx2md: a pptx to markdown converter replace page separation by begin note / end note: [Wayback/Archive] Comparing ssine:master…scope-repos:master · ssine/pptx2md · GitHub
- [Wayback/Archive] GitHub – starnutoditopo/pptx2md: A pptx to markdown converter ads docker support
[Wayback/Archive] Comparing ssine:master…starnutoditopo:master · ssine/pptx2md · GitHub
- [Wayback/Archive] GitHub – stephanedenis/pptx2md: a pptx to markdown converter ads pylint support:
[Wayback/Archive] Comparing ssine:master…stephanedenis:master · ssine/pptx2md · GitHub
--jeroen






Leave a comment