Have you ever wondered how some apps can manipulate PowerPoint files or even create slides automatically? For example, financial services organizations generate slides with updated numbers in an automated manner every month. At TeamSlide, we can automatically update out-of-date slides or even specific objects on a slide. To understand this, we first need to dive into how PowerPoint files work.
Your slide deck is actually a zip file in disguise that contains a collection of XML files. By simply renaming the file from .pptx to .zip, you can find interesting data, mostly in XML format.
What is XML?
“XML stands for eXtensible Markup Language. It is a markup language much like HTML, except it was designed to store and transport data” – w3schools
Using .XML with PowerPoint Files
Warning: Prior to making manual edits, create a backup copy of your PowerPoint file. Manual edits may corrupt the files.
After renaming the file from .pptx to .zip, double click it. You’ll see a variety of folder names and XML files.
By clicking into the ‘Media’ folder, you can view all of the image files that are in your presentation.
You can even view individual slides from your PowerPoint presentation. Double-click on the ‘Slides’ folder and select a slide file you want to view/edit.
This will show you the XML code, which you can then edit. If you’re an investment banker, you may want to add slides through the XML code. In marketing, you may use this to edit the copy of slides or save quality images from the presentation onto your computer.
Get to know your new .zip file structure
A .pptx file starts with the file_rels/.rels and then expands to:
from which the masters, notes masters and slides are linked
And then expands to:
Metadata including presentation title, editor name, last modified date
A small preview of the first slide – this is where most applications get the preview from including Windows Explorer when showing icons. (This is why PowerPoint’s reuse slides feature only displays the first slide of the presentation. Unlike TeamSlide, it doesn’t generate previews or thumbnails for other slides)
(text) content of the first slide
Access image files
Useful ways to take advantage of PowerPoint automation:
- Analyze unexpectedly large file sizes
- You may find that your PowerPoint file is unexpectedly large when it only has, say, two text-only slides. Investigate the file size issue by unzipping your .pptx file, and you’ll find your answer. In some cases, there may be layout pages and some images taking up space.
- Create slides automatically (creating XML file) based on data in another form (e.g. Excel)
- Access all images used in a deck
- If you unzip your PowerPoint file, you’ll notice a folder called media that contains all of the images in your presentation. You can make changes to images as long as the size doesn’t change. E.g. convert all images to grayscale. If changing the size, consider how it affects the layout in PowerPoint.
- Read the content of each slide object (parse the XML file) to build search indexes.
- Edit slide text and create objects like charts
- Viewing the slide .xml file allows you to edit the content of each slide.
- Read metadata from files docProps/app.xml and core.xml. Such as:
- Last editor
- Last modification date (unlike file system date also available for presentations received via email or downloaded)
- Number of words in the presentation
- Read comments
- View text from ppt/comments/commentX.xml
How TeamSlide uses PowerPoint automation
TeamSlide searches your slide repository and matches your search terms with specific slides. On the backend, this is achieved by indexing individual slides and taking a picture of each one. When you run a search in the TeamSlide pane, TeamSlide then uses the index to search all objects (text, images, videos) within your slides, returning thumbnails of the most relevant slides. Click on a thumbnail, and with PowerPoint automation, TeamSlide inserts the slide into your presentation. The search and insert capability helps teams maximize efficiency and can even assist with version control.