File types · Explainer

The PPT file (.ppt)

A PPT file is a PowerPoint presentation in the binary format that PowerPoint 97 to 2003 saved by default. This guide explains what's inside one, how it differs from PPTX and PDF, the quirks and risks worth knowing, and has free sample PPT files to download for testing.

At a glance

Full name
PowerPoint 97-2003 Presentation (PowerPoint Binary File Format)
Extensions
.ppt; slide shows use .pps, templates .pot
MIME type
application/vnd.ms-powerpoint
Kind
Binary: records in streams inside an OLE2 compound file
Owner
Microsoft; documented in the [MS-PPT] open specification
First released
1997, with PowerPoint 97; PowerPoint's default format until PowerPoint 2007
Opens with
PowerPoint, LibreOffice Impress, Google Slides, Keynote
Magic number
D0 CF 11 E0 A1 B1 1A E1 (any OLE2 file); a PowerPoint Document stream marks it as PowerPoint
Video
Always linked to a separate file, never embedded
Macros
Allowed: VBA projects can be stored inside the file

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 Document stream; pictures share a Pictures stream.
  • 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.

sample-minimal.ppt (hex and records)
$ 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. 1d0cf 11e0 a1b1 1ae1

    The OLE2 signature

    The same 8 bytes start every compound file, including DOC and XLS files. The rest of the 512-byte header gives the version (3, so 512-byte sectors), the byte order and where the FAT and directory are.

  2. 26700 0000 · 6900 0000

    Directory 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. 364818D10-4F9B-…

    The root storage's class ID

    The class ID registered for PowerPoint presentations. Programs use it, and the \x01CompObj stream, to tell which application made the file.

  4. 4PowerPoint Document

    The main stream

    Every slide, master, notes page, text, shape and setting, as records. It's required, as is Current User.

  5. 5Pictures

    The 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. 65f c0 91 e3

    The Current User atom

    Its header token, 0xE391C05F, means the file isn't encrypted; an encrypted file has 0xF3D1C4DF. The next 4 bytes, 0x0000C552, are the offset of the latest UserEditAtom in the main stream.

  7. 70f 00 e8 03 46 07 00 00

    A 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. 8DocumentAtom: slide 5760 × 4320

    The 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.ppt has 7680 × 4320.

  9. 9MainMasterContainer (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. 10SlideContainer · NotesContainer

    The 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. 11PersistDirectoryAtom · UserEditAtom

    The 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:

StreamWhat it holds
PowerPoint DocumentThe 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 UserWho last saved the file and where the latest edit starts in the main stream.
PicturesEvery picture in the deck, once each, as BLIP records with the image data.
\x05SummaryInformation, \x05DocumentSummaryInformationTitle, 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 versionFile 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 laterPPTX 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

PPTPPTXPDFODP
StructureBinary records in an OLE2 fileZIP of XML and mediaBinary objects and streamsZIP of XML and media
Open standardDocumented, not a standardYes (ISO/IEC 29500)Yes (ISO 32000)Yes (ISO/IEC 26300)
VideoLinked onlyEmbedded or linkedRarely playedEmbedded or linked
MacrosYes, same extensionNo (.pptm instead)No (but JavaScript)Yes
SizeLarger, not compressedSmaller, compressedDepends on images and fontsSmaller, compressed
Opens in a browserNo, it downloadsNoYesNo

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 Pictures stream can be extracted with olefile to 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 the Pictures stream.

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 User stream.
  • 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.

sample-presentation.ppt · 227 KBDownload

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.

  1. Seven 16:9 slides

    Slide size 7680 × 4320 master units (13.333 × 7.5 in), stored in the DocumentAtom.

  2. Masters and layouts

    Title, bullets with two levels and a two-column slide, all taking their fonts and colours from the masters.

  3. A table

    Slide 4: in the binary format, a table is a group of shapes, one per cell, plus its border lines.

  4. A chart

    Slide 5: an embedded chart object with its own data, plus an EMF picture of it in the Pictures stream for programs that can't run the object.

  5. A picture

    Slide 6: a 1280 × 720 JPEG, stored as a BLIP record in the Pictures stream.

  6. Link, notes and transitions

    A hyperlink to this page, speaker notes on every slide, slide-number fields and fade transitions.

  7. 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 Pictures stream, 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 the PowerPoint Document stream before calling it a presentation.
  • Slide size: thumbnails of sample-minimal.ppt should be 4:3 and of sample-presentation.ppt 16:9.
  • Notes extraction: every slide of sample-presentation.ppt has speaker notes. Check that your indexer or converter finds them, or deliberately drops them.
  • Pictures: sample-1mb.ppt holds three JPEGs in its Pictures stream (933,009 bytes in all). An extractor should return three images.
  • Upload limits: sample-1mb.ppt is 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

Last reviewed 27 October 2026.