The basics
What is a PPT file?
PPT is the binary file format of PowerPoint 97, 2000, 2002 and 2003 on Windows, and of PowerPoint 98 to 2004 on the Mac. For ten years nearly every slide deck that was emailed, put on a USB stick or posted on an intranet was a .ppt file. PowerPoint 2007 replaced it with PPTX as the default, but PowerPoint, Keynote, Google Slides and LibreOffice still open PPT files.
Two related extensions use the same format: .pps, a PowerPoint Show that starts the slide show when you open it, and .pot, a template. Only the extension and a flag differ.
- It's binary. Slides, text and shapes are records inside a compound file, not readable text.
- It's one stream, not one file per slide. All slides sit in the
PowerPoint Documentstream; pictures share aPicturesstream. - Video isn't inside it. A PPT can embed sounds, but a video is always a link to a separate file, which is why old decks so often play a black box on another computer.
Anatomy
What's inside a PPT file
A PPT file is an OLE2 compound file, a small file system in one file. The presentation is a tree of records in a stream called PowerPoint Document, and a tiny Current User stream says where the latest version starts. This is our sample-minimal.ppt, one 4:3 slide, part by part.
$ xxd -l 80 sample-minimal.ppt (first 80 of the 512 header bytes)
00000000: d0cf 11e0 a1b1 1ae1 0000 0000 0000 0000 ................
00000010: 0000 0000 0000 0000 3e00 0300 feff 0900 ........>.......
00000020: 0600 0000 0000 0000 0000 0000 0100 0000 ................
00000030: 6700 0000 0000 0000 0010 0000 6600 0000 g...........f...
00000040: 0100 0000 feff ffff 0000 0000 6900 0000 ............i...
Streams (root class 64818D10-4F9B-11CF-86EA-00AA00B929E8)
PowerPoint Document 50,550 bytes
Current User 44 bytes
Pictures 0 bytes
\x05SummaryInformation 404 bytes
\x05DocumentSummaryInformation 460 bytes
\x01CompObj 57 bytes, \x01Ole 20 bytes
Current User stream:
00 00 f6 0f 24 00 00 00 14 00 00 00 5f c0 91 e3 52 c5 00 00 …
PowerPoint Document stream, top-level records:
offset record header record
000000 0f 00 e8 03 46 07 00 00 DocumentContainer
000008 00 00 e9 03 28 00 00 00 DocumentAtom: slide 5760 × 4320
00074e 0f 00 f8 03 d0 0e 00 00 MainMasterContainer (11 in a row)
00b660 0f 00 f0 03 40 07 00 00 NotesContainer: the notes master
00bda8 0f 00 ee 03 66 05 00 00 SlideContainer: the slide
00c316 0f 00 f0 03 ec 01 00 00 NotesContainer: the slide's notes page
00c50a 00 00 72 17 40 00 00 00 PersistDirectoryAtom
00c552 00 00 f5 0f 1c 00 00 00 UserEditAtom- 1
d0cf 11e0 a1b1 1ae1 - 2
6700 0000 · 6900 0000Directory and FAT locations
The directory starts in sector 0x67 (103), and the only FAT sector is sector 0x69 (105), listed at offset 0x4C. A file's sectors can be anywhere; the FAT chains them together.
- 3
64818D10-4F9B-…The root storage's class ID
The class ID registered for PowerPoint presentations. Programs use it, and the
\x01CompObjstream, to tell which application made the file. - 4
PowerPoint DocumentThe main stream
Every slide, master, notes page, text, shape and setting, as records. It's required, as is
Current User. - 5
PicturesThe pictures stream
Images, each stored as a BLIP record holding a JPEG, PNG, EMF or other picture. Empty here, since the slide has only text.
- 6
5f c0 91 e3The Current User atom
Its header token,
0xE391C05F, means the file isn't encrypted; an encrypted file has0xF3D1C4DF. The next 4 bytes,0x0000C552, are the offset of the latest UserEditAtom in the main stream. - 7
0f 00 e8 03 46 07 00 00A record header
8 bytes: version and instance (
0x000F, where version 0xF means a container that holds other records), the record type (0x03E8, DocumentContainer) and the length (0x0746, 1,862 bytes). A reader can skip any record it doesn't understand. - 8
DocumentAtom: slide 5760 × 4320The slide size
In master units, 576 per inch: 10 × 7.5 inches, the Standard 4:3 size. A 16:9 deck such as
sample-presentation.ppthas 7680 × 4320. - 9
MainMasterContainer (11 in a row)The masters
LibreOffice saved one master for each of the 11 layouts of the source deck. Slides refer to their master by ID.
- 10
SlideContainer · NotesContainerThe slide and its notes
Each slide is one container record with its shapes; its speaker notes are a separate notes container. Text sits in TextCharsAtom (UTF-16) or TextBytesAtom (8-bit) records: inside the shape for a text box, and in a slide list in the DocumentContainer for placeholder text.
- 11
PersistDirectoryAtom · UserEditAtomThe edit history
The persist directory maps object IDs to byte offsets. The UserEditAtom points to it and to any earlier edit. An incremental save appends new objects plus a new pair of these records, leaving old versions in the file.
Under the hood
How a PPT file is put together
A PPT file is a Compound File Binary (OLE2) file, like DOC and XLS. Inside, PowerPoint uses a few streams:
| Stream | What it holds |
|---|---|
PowerPoint Document | The presentation as a tree of records: the document, masters, slides, notes, shapes and text. Embedded OLE objects, such as a chart, are stored here too, often compressed. |
Current User | Who last saved the file and where the latest edit starts in the main stream. |
Pictures | Every picture in the deck, once each, as BLIP records with the image data. |
\x05SummaryInformation, \x05DocumentSummaryInformation | Title, author, dates, slide count and other properties. Can also hold a preview picture of the first slide. |
- Everything is a record with an 8-byte header: version, instance, type and length. Containers hold other records; atoms hold data. Readers skip types they don't know, which kept the format readable across four PowerPoint versions.
- Objects are found through a directory. Slides, masters and notes have persist IDs, and the persist directory maps them to byte offsets in the stream.
- Saves can be incremental. PowerPoint could append changed objects and a new directory to the end of the stream instead of rewriting it, so earlier versions of slides could remain inside the file.
- Sizes are in master units, 576 per inch, where PPTX uses EMUs, 914,400 per inch.
Reading it without PowerPoint
olefile in Python lists the streams. Apache POI (HSLF, Java) and LibreOffice read the slides, text and pictures. Microsoft documents the records in the [MS-PPT] specification.
Versions
PowerPoint versions and Compatibility Mode
| PowerPoint version | File format |
|---|---|
| PowerPoint 1.0 to 7.0 (1987 to 1995) | A series of different binary formats. PowerPoint 4.0 (1994) was the first to use a compound file. |
| PowerPoint 97 to 2003 (Windows), 98 to 2004 (Mac) | The PPT format on this page, [MS-PPT]. |
| PowerPoint 2007 and later | PPTX by default. Still opens PPT, and saves it as "PowerPoint 97-2003 Presentation". |
When current PowerPoint opens a .ppt, it shows Compatibility Mode in the title bar and turns off features the old format can't store. Saving as PPTX ends it.
Saving a newer deck as .ppt changes things, and PowerPoint's Compatibility Checker lists them first (File, Info, Check for Issues, Check Compatibility). According to Microsoft:
- SmartArt becomes a single object that can't be edited as SmartArt.
- Shapes and text with newer effects become pictures, and their animations are lost.
- Video embedded by PowerPoint 2010 and later can't be kept as a playable embedded video; Microsoft suggests inserting it again as a link.
- Chart data beyond 65,536 rows or 256 columns isn't saved.
Comparison
PPT vs PPTX, PDF and ODP
| PPT | PPTX | ODP | ||
|---|---|---|---|---|
| Structure | Binary records in an OLE2 file | ZIP of XML and media | Binary objects and streams | ZIP of XML and media |
| Open standard | Documented, not a standard | Yes (ISO/IEC 29500) | Yes (ISO 32000) | Yes (ISO/IEC 26300) |
| Video | Linked only | Embedded or linked | Rarely played | Embedded or linked |
| Macros | Yes, same extension | No (.pptm instead) | No (but JavaScript) | Yes |
| Size | Larger, not compressed | Smaller, compressed | Depends on images and fonts | Smaller, compressed |
| Opens in a browser | No, it downloads | No | Yes | No |
Convert old decks to PPTX when you edit them, and send PDF when people only need to read the slides. Keep PPT only for a system or a PowerPoint version that can't open anything newer.
Troubleshooting
Common PPT problems and how to fix them
- A video shows as a black box or an error. PPT files only link to videos. The video file has to travel with the deck, at the path the link expects, usually in the same folder. Converting the deck to PPTX and inserting the video again embeds it.
- "[Compatibility Mode]" in the title bar. The deck is in the old format. File, Info, Convert (or Save As, PowerPoint Presentation) turns it into PPTX.
- Black bars at the sides. Most PPT decks are 4:3, made for the projectors of their time. Design, Slide Size, Widescreen changes it, and asks whether to scale the content.
- The file is far bigger than its slides. PPT isn't compressed, and incremental saves leave old data behind. Saving it as PPTX, or with Save As to a new file, usually shrinks it a lot.
- Fonts look different. As with PPTX, fonts that aren't installed are replaced. Old decks often use fonts that are no longer common.
- It won't open: "PowerPoint can't read" the file. Damage to the compound file hides streams that are still there. LibreOffice Impress sometimes opens files PowerPoint refuses, and the
Picturesstream can be extracted witholefileto rescue the images.
How to
How to open, edit and convert a PPT file
- PowerPoint on Windows and Mac opens PPT files in Compatibility Mode. PowerPoint for the web and the mobile apps can open them too.
- Without PowerPoint: LibreOffice Impress (free, Windows, Mac, Linux) opens and saves PPT. Google Slides opens PPT files uploaded to Google Drive, and Keynote imports them.
- In a browser: browsers can't display PPT files, so a link to one downloads it.
- Convert to PPTX: in PowerPoint, File, Info, Convert, or Save As, PowerPoint Presentation. On a server:
soffice --headless --convert-to pptx old.ppt. - Convert to PDF: File, Save As or Export, PDF; or
soffice --headless --convert-to pdf old.ppt. - Extract the pictures: convert to PPTX and look in
ppt/media/inside it, which is easier than parsing thePicturesstream.
Security
Is it safe to open a PPT file?
A .ppt can contain VBA macros without any sign in its name. Since 2022, Office on Windows blocks macros in files that came from the internet. Other risks:
- Action settings. A shape or button can start a program or open a web page when it's clicked or hovered over. PowerPoint asks before running a program; don't agree for a file you didn't expect.
- Embedded OLE objects can hold other documents or files that run when double-clicked.
- Parser bugs. The binary format is complex, and PowerPoint's binary reader has had security fixes over the years. Keep Office updated and leave Protected View on for files from outside.
PPT files also carry more than the audience sees:
- Speaker notes, hidden slides and comments, which go wherever the file goes.
- Old versions of slides left behind by incremental saves.
- Author names and the last user in the summary streams and the
Current Userstream. - Weak passwords. Password protection in the old format uses RC4, far weaker than the AES encryption of PPTX.
Before sending an old deck outside your organisation, convert it to PPTX and run the Document Inspector (File, Info, Check for Issues, Inspect Document), or send a PDF.
Free downloads
Sample PPT files to download
Free sample PowerPoint 97-2003 presentations for testing converters, previews, parsers and uploads. LibreOffice wrote each one from a PPTX made with python-pptx; we then copied every stream into a fresh compound file without the 575 KB preview bitmap LibreOffice puts in the summary stream. All were checked with olefile and by converting them back to PPTX with LibreOffice. None contains macros.
Browsers can't show this kind of file in a page. Download it to open it in the app it belongs to.
What's inside sample-presentation.ppt
Browsers can't preview PPT files, so download it and open it in PowerPoint, LibreOffice, Google Slides or Keynote. It's the same deck as our sample PPTX, so you can compare the two formats.
Seven 16:9 slides
Slide size 7680 × 4320 master units (13.333 × 7.5 in), stored in the DocumentAtom.
Masters and layouts
Title, bullets with two levels and a two-column slide, all taking their fonts and colours from the masters.
A table
Slide 4: in the binary format, a table is a group of shapes, one per cell, plus its border lines.
A chart
Slide 5: an embedded chart object with its own data, plus an EMF picture of it in the
Picturesstream for programs that can't run the object.A picture
Slide 6: a 1280 × 720 JPEG, stored as a BLIP record in the
Picturesstream.Link, notes and transitions
A hyperlink to this page, speaker notes on every slide, slide-number fields and fade transitions.
Document properties
Title, author, subject, keywords and a comment in
\x05SummaryInformation.
All sample PPT files
Seven-slide sample deck
sample-presentation.ppt · 227 KB (232,448 bytes)
A 16:9 deck: title slide, bullets, two columns, a table, a chart, a picture, a hyperlink, speaker notes on every slide, slide numbers and fade transitions. The same content as
sample-presentation.pptx.- Testing converters and previews
- Comparing PPT and PPTX output
Minimal PPT, one 4:3 slide
sample-minimal.ppt · 53.5 KB (54,784 bytes)
One slide with a title and a subtitle, the file in the anatomy above. Most of its 50 KB main stream is the 11 masters LibreOffice writes.
- Learning the record structure
- Smoke tests for PPT readers
1 MB PPT file
sample-1mb.ppt · 1 MB (1,048,576 bytes)
Three 16:9 slides, each filled by a 1920 × 1080 JPEG in the
Picturesstream, with filler text in the last slide's notes that brings the file to exactly 1,048,576 bytes (1 MiB).- Upload limits and timeouts
- Image extraction from the Pictures stream
Ways to test with them
- File type detection: all three start with
D0 CF 11 E0 A1 B1 1A E1, like DOC and XLS files. A detector should find thePowerPoint Documentstream before calling it a presentation. - Slide size: thumbnails of
sample-minimal.pptshould be 4:3 and ofsample-presentation.ppt16:9. - Notes extraction: every slide of
sample-presentation.ppthas speaker notes. Check that your indexer or converter finds them, or deliberately drops them. - Pictures:
sample-1mb.pptholds three JPEGs in itsPicturesstream (933,009 bytes in all). An extractor should return three images. - Upload limits:
sample-1mb.pptis exactly 1,048,576 bytes, so you can test a limit right at the boundary.
Free to use for testing, teaching and demos, commercially or not, with no attribution needed. A link back to this page is always appreciated.
Put it online
Have a PPT file? Give it a link.
Drop a PowerPoint 97-2003 presentation on 99helpers and it gets its own link. Browsers can't display PPT files, so visitors download it and open it in PowerPoint, Keynote or Google Slides; to have a deck viewed in the browser, upload a PDF version.
Questions
PPT files, frequently asked
What is a PPT file?
A PowerPoint presentation in the binary format of PowerPoint 97 to 2003. PowerPoint 2007 and later save PPTX by default but still open and save PPT.
What's the difference between PPT and PPTX?
PPT is binary records in an OLE2 compound file; PPTX is a ZIP of XML and media, smaller and an open standard. PPTX can embed video and can't contain macros; PPT only links to video and can contain macros.
How do I open a PPT file without PowerPoint?
Use LibreOffice Impress (free), Google Slides (upload the file to Google Drive), Keynote on a Mac, or PowerPoint for the web, which is free with a Microsoft account.
How do I convert PPT to PPTX?
Open it in PowerPoint and choose File, Info, Convert, or Save As, PowerPoint Presentation. LibreOffice does it too: soffice --headless --convert-to pptx file.ppt.
Why doesn't the video in my old PPT play?
PPT files can't embed video; they only link to a separate video file. If that file didn't come along, or sits at a different path, the video can't play. Convert to PPTX and insert the video again to embed it.
What's the difference between PPT and PPS?
Only how they open. A .pps file starts the slide show straight away; a .ppt opens in the editor. Renaming one to the other switches the behaviour.
Can a PPT file contain a virus?
Yes. PPT files can hold VBA macros, embedded objects and actions that start programs. Don't enable content or allow programs to run from a presentation you didn't expect.
Related formats
Other file types explained
Keep going
Related
Sources
- Microsoft: [MS-PPT] PowerPoint (.ppt) Binary File Format
- Library of Congress: PowerPoint 97-2003 Binary File Format
- Microsoft: [MS-CFB] Compound File Binary File Format
- Microsoft: Compatibility Checker in PowerPoint
- Microsoft Learn: Macros from the internet are blocked by default in Office
Last reviewed 27 October 2026.