I Want to Create PPTX Files
Lately, I have too many things I want to do and I’m working on various projects in parallel.
Among them, for some reason, the desire to create PowerPoint documents from Markdown is strong,
and I’m putting the most effort into it.
First, I Looked for Existing Tools
I haven’t searched for super niche tools, but
it feels like there isn’t anything I want to use right away.
There are many tools that can convert to PDF, but few for PowerPoint, right?
Then I found this page.
https://qiita.com/sky_y/items/f38db5dd69720e5ca0cfqiita.com
Apparently, using something called Pandoc can already do what I want. However, it seems like it doesn’t quite scratch the itch for PowerPoint features right now.
So, Should I Make It Myself?
For now, I want to build it in an environment I’m comfortable with, so I’ll use Visual Studio + C#. I plan to write the library in .NET Standard so it can be reused later.
The main features I probably need to create are the following two.
Markdown Parsing
I searched for several tools for this too, but many of them convert to HTML.
You can understand why based on how they are used.
So, I haven’t started on this yet, but I’m thinking of either tackling it with regular expressions,
or trying out a text parser library called “Sprache” that I learned about in a previous job
to see if it’s possible.
Creating pptx Files
For this, in my usual work, I frequently use a library called ClosedXML, which wraps OpenXML for Excel’s xlsx files.
So I looked for a similar sibling library for PowerPoint, but couldn’t find one.
Therefore, I’ll use only the OpenXML library and build the rest myself.
This part is progressing reasonably well, and I’ve already succeeded in writing out sample files!
The implementation is still not refined, so I’m proceeding while refactoring.
However, since it’s only intended for outputting from Markdown, I’m not planning to wrap the full functionality.
This is a very HOT development project for me personally,
so I want to push it forward until it takes some shape.
And if it goes well, I want to use Xamarin to turn it into iOS and Android apps.