TomWildenhain / pptcc

MIT License
468 stars 12 forks source link

Unpack pptx file #6

Open aetonsi opened 4 years ago

aetonsi commented 4 years ago

Hi, i'd suggest unpacking the pptx file to have better versioning and allow working on the same file as granularly as possible. Also, it would allow batch editing of slides by editing the xml files. I'm preparing a PR right now for this.

rugk commented 4 years ago

How did you unpack it? Just unzip?

If so, IMHO that is quite unpracticable from a developers workflow. One should use Ctrl+S and the file is saved to VCS directly. Fortunately, PowerPoint supports this: There is a flat file format that embeds everything in an XML file: powerPointXml

Just select "PowerPoint XML" as a file format.

Bonus: You can now edit your complete PPT with a usual text editor (try throwing a lot of images in there! :upside_down_face:): text

*… Yeah, sorry for Windows 7. It was the best, still sad to see it gone…
aetonsi commented 4 years ago

Yeah, i just unzipped it. My goal was to have multiple files to work on, in order to have as little conflicts as possible.

I didn't know about the single file XML to be honest...

rugk commented 4 years ago

Well… an XML file would also avoid the conflicts, as it is not binary. Multiple files may be more convenient to edit, but – on the other hand – you need to manually extract them. So there is a trade-off to make here…

aetonsi commented 4 years ago

Yeah i know.. i included a script to make it possible to pack->edit->unpack the file, but it's surely not practical

TomWildenhain commented 4 years ago

Realistically, merging two PPT presentations automatically is going to be a nightmare regardless of how they are stored. Ultimately if we want to generate PPT files programmatically, there will need to be some type of template file and a python script that programmatically edits it (probably in unpacked or XML form). Until then, I would recommend making different PPT files for different components and then copying the slides together into a single presentation manually.