OOXML is incredibly complicated, but LLMs can write it well enough. One of my colleagues was using an LLM to generate PNG slides for a presentation. They looked pretty, but changing anything was a pain. I fed the images to free ChatGPT and asked for a PPTX with every text box, frame and image split into its own object, and it spat out a real, editable presentation.
> A PowerPoint file is a ZIP package containing XML files and binary assets.
> It stores all the properties you set in a PowerPoint presentation, and tries to organize them into separate files to avoid repetition and make things easier to locate.
This is a great read. One of the most requested AI features I’ve seen is PPTX slide generation that matches a corporate template and assets perfectly. Claude with skills comes close but not close enough. The amount of fiddling needed to adjust is nearly equal to doing it yourself from scratch. It’s a very tricky standard to work with!
I knew a powerpoint is basically a zip file when I was trying to crack a pptx file last year, the AI basically said “pptx file is basically a zip file, let’s do …”, when I unzipped it, turned out the password protection is useless, all assets and everything are in there unprotected, including the 3D models inside. And you can pack it to a file again, just like the protected one but with no password.
all files are either text, binary blobs or archives (zip), no exception
I personally knew about this when I needed to extract all images from a Word document in 2015, I had the idea to rename the extension to .zip and wow a conveniently placed media folder !
since then I renamed countless file extensions to zip, just to test. it worked nearly every single time
Software like 7-Zip supports many formats, even ones that are not usually treated as archives, and recognises them by magic bytes rather than extension. You can for example add a zip extension an EXE file, and 7-Zip will open it.
A much more robust way to figure out what's in a file is using libmagic, accessible through the `file` command on *nix. I don't know if there's an alternative Windows though.
Hah! That's also how I first learned about the zip trick with pptx.
Had never considered it generalizes outside of OOXML files. I'll give it a try next time I'm poking around another file format
i've been struggling a lot with my team to standardize our presentation systems. as soon as we got claude people just started making adhoc, non-standard, slides. This is good because they're 10x better than the bullshit one offs PMs used to make. But as a result we've got 80 different ways of conveying the same type of information to our leadership. And its pissing those leaders off.
Getting people aligned on a single template is our biggest headache for the ops side of the house. Will definitely need to research this further. Thanks for the post.
Oh man the masters and layout proliferation is the biggest pain.
If you can, I'd do a bare bones starting template with like Cover, section divider, and title only layouts. Lock in slide dimensions, fonts, colors. Then ask (and pray) people upload that instead of letting Claude work from scratch.
Even if everyone goes in a different direction, it's much easier to merge and conform styles if you're working on the same template with minimal placeholders.
Ideally you get a library of "best practice" slides that people use as a starting point, but realistically people love doing their thing. Key is to set yourself up for an easy cleanup.
A lot of of the library-as-a-service startups doing excel/PowerPoint/PDF editing libs are gonna die with how ubiquitous and powerful modern LLMs are. I expect a lot of such companies to write sob blog posts similar to what the tailwind founder did about having to lay off most of their team and reinvent themselves for the agentic era. It's a sad time to be a dev right now.
OOXML is incredibly complicated, but LLMs can write it well enough. One of my colleagues was using an LLM to generate PNG slides for a presentation. They looked pretty, but changing anything was a pain. I fed the images to free ChatGPT and asked for a PPTX with every text box, frame and image split into its own object, and it spat out a real, editable presentation.
> A PowerPoint file is a ZIP package containing XML files and binary assets.
> It stores all the properties you set in a PowerPoint presentation, and tries to organize them into separate files to avoid repetition and make things easier to locate.
Very informative read overall.
This is all MS Office file formats ending in “x”; xlsx, docx, pptx, etc
Thanks! Glad it was useful.
This is a great read. One of the most requested AI features I’ve seen is PPTX slide generation that matches a corporate template and assets perfectly. Claude with skills comes close but not close enough. The amount of fiddling needed to adjust is nearly equal to doing it yourself from scratch. It’s a very tricky standard to work with!
I knew a powerpoint is basically a zip file when I was trying to crack a pptx file last year, the AI basically said “pptx file is basically a zip file, let’s do …”, when I unzipped it, turned out the password protection is useless, all assets and everything are in there unprotected, including the 3D models inside. And you can pack it to a file again, just like the protected one but with no password.
>turned out the password protection is useless, all assets and everything are in there unprotected, including the 3D models inside
That's only true for the edit protection password, which obviously can't be implemented in a foolproof way, and therefore it's an honor system.
https://en.wikipedia.org/wiki/Microsoft_Office_password_prot...
is password also included along with the assets?
all files are either text, binary blobs or archives (zip), no exception
I personally knew about this when I needed to extract all images from a Word document in 2015, I had the idea to rename the extension to .zip and wow a conveniently placed media folder !
since then I renamed countless file extensions to zip, just to test. it worked nearly every single time
Software like 7-Zip supports many formats, even ones that are not usually treated as archives, and recognises them by magic bytes rather than extension. You can for example add a zip extension an EXE file, and 7-Zip will open it.
A much more robust way to figure out what's in a file is using libmagic, accessible through the `file` command on *nix. I don't know if there's an alternative Windows though.
If you're including binary blobs as one of your options, then both text and archives are just types of binary blobs :)
Hah! That's also how I first learned about the zip trick with pptx. Had never considered it generalizes outside of OOXML files. I'll give it a try next time I'm poking around another file format
You’d be surprised how many file formats are some flavor of “zip file containing files”.
JAR/WAR, iOS apps, and others
i've been struggling a lot with my team to standardize our presentation systems. as soon as we got claude people just started making adhoc, non-standard, slides. This is good because they're 10x better than the bullshit one offs PMs used to make. But as a result we've got 80 different ways of conveying the same type of information to our leadership. And its pissing those leaders off.
Getting people aligned on a single template is our biggest headache for the ops side of the house. Will definitely need to research this further. Thanks for the post.
Oh man the masters and layout proliferation is the biggest pain.
If you can, I'd do a bare bones starting template with like Cover, section divider, and title only layouts. Lock in slide dimensions, fonts, colors. Then ask (and pray) people upload that instead of letting Claude work from scratch.
Even if everyone goes in a different direction, it's much easier to merge and conform styles if you're working on the same template with minimal placeholders.
Ideally you get a library of "best practice" slides that people use as a starting point, but realistically people love doing their thing. Key is to set yourself up for an easy cleanup.
Cool post. Having text animations on a blog post is REALLY distracting for me tho.
A lot of of the library-as-a-service startups doing excel/PowerPoint/PDF editing libs are gonna die with how ubiquitous and powerful modern LLMs are. I expect a lot of such companies to write sob blog posts similar to what the tailwind founder did about having to lay off most of their team and reinvent themselves for the agentic era. It's a sad time to be a dev right now.
new PPT: Zip files old PPT: OLE pseudo FS with objects embedded.