PPSX File Documentation


Summary

A PowerPoint Open XML Slide Show is a presentation saved so that double-clicking it launches straight into full-screen playback instead of the editor. A .ppsx file holds the exact same content as a PPTX — it is a ZIP archive of XML parts — and its MIME type is application/vnd.openxmlformats-officedocument.presentationml.slideshow. It is not locked: rename it to .pptx or open it in PowerPoint and Save As to edit it.

Technical details

FeatureValue
Full namePowerPoint Open XML Slide Show
File extension.ppsx
MIME typeapplication/vnd.openxmlformats-officedocument.presentationml.slideshow
Format typeOffice Open XML package (ZIP container of XML parts)
Container / base formatZIP (Open Packaging Conventions)
DeveloperMicrosoft
Introduced2007 (Office 2007)
StandardISO/IEC 29500 (Office Open XML), ECMA-376
Open standardYes — published ISO/IEC standard
Byte orderZIP structures little-endian; XML is UTF-8 text
Magic number (hex)50 4B 03 04 (ZIP local file header, “PK”)
Content type part[Content_Types].xml declares the slideshow content type
EditableYes — rename to .pptx or Save As in PowerPoint
MacrosNo — VBA lives only in the macro-enabled .ppsm
Opening behaviourLaunches directly into slide-show (full-screen) mode
PredecessorBinary PowerPoint Show .pps
Related extensions.pptx, .pps, .ppsm, .potx, .pptm, .odp
Specificationlearn.microsoft.com/openspecs/office_standards/ms-pptx/
File signature (magic bytes)
50 4B 03 04

Offset 0, 4 bytes. In ASCII this reads P K \x03 \x04, the standard ZIP local file header, because a .ppsx is a ZIP archive. It is byte-for-byte indistinguishable at the start from a PPTX, DOCX or XLSX. What identifies it as a slide show is the first archive member, [Content_Types].xml, whose default and override entries declare the content type application/vnd.openxmlformats-officedocument.presentationml.slideshow. Rename the file to .zip and any archiver lists the parts inside.

What is a PPSX file?

PPSX stands for PowerPoint Open XML Slide Show. Microsoft introduced it in 2007 with Office 2007 as part of the Office Open XML family, later standardised as ECMA-376 and ISO/IEC 29500. A .ppsx file is structurally the same thing as a PPTX: a ZIP archive that holds a tree of XML documents, images, media and relationship files. The one meaningful difference is a single piece of package metadata that tells PowerPoint to open the file directly in full-screen slide-show mode rather than in the editing view.

It is the XML-based successor to the old binary PowerPoint Show, .pps, which used the same OLE compound-file container as legacy .ppt. People create a PPSX when they want to hand someone a finished deck that should just play: double-clicking it starts the show, no editor chrome, no design ribbon. A widespread myth (repeated in a lot of old documentation) says a PPSX is locked or read-only. It is not. The slideshow flag changes how PowerPoint opens the file, nothing more; the underlying parts are fully editable.

The OPC package: a ZIP archive of parts

Office Open XML files are built on the Open Packaging Conventions (OPC), the Part 2 of ISO/IEC 29500. An OPC package is a plain ZIP archive, so a PPSX begins with the ZIP local file header 50 4B 03 04 and ends with a ZIP central directory. Everything else is a part: a named stream inside the archive, addressed by a path that looks like a URL. A minimal slide show unzips to roughly this layout.

presentation.ppsx  (a ZIP archive)
├─ [Content_Types].xml        MIME type of every part in the package
├─ _rels/
│   └─ .rels                  package-level relationships (entry points)
├─ ppt/
│   ├─ presentation.xml       slide order, slide size, references
│   ├─ _rels/presentation.xml.rels
│   ├─ slides/
│   │   ├─ slide1.xml         one part per slide
│   │   ├─ slide2.xml
│   │   └─ _rels/slide1.xml.rels
│   ├─ slideLayouts/          layout parts each slide is built on
│   ├─ slideMasters/          masters that layouts inherit from
│   ├─ theme/theme1.xml       colours, fonts, effect styles
│   └─ media/                 image1.png, video1.mp4, audio1.m4a …
└─ docProps/
    ├─ core.xml               title, author, dates (Dublin Core)
    └─ app.xml                slide count, application name

Because it is an ordinary ZIP, you can rename report.ppsx to report.zip and browse the parts with any archiver. That is also the safe way to inspect an unexpected file before opening it: you read the XML without ever letting PowerPoint run the show.

[Content_Types].xml and how the slideshow type is declared

OPC does not use file extensions inside the package to decide what a part is. Instead, the very first part, [Content_Types].xml, maps every part to a media (MIME) type using two mechanisms: Default elements keyed by file extension, and Override elements that name a specific part by path. This part is what separates a PPSX from a PPTX, a DOCX or an XLSX, since all four share the identical ZIP signature.

<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
  <Default Extension="rels" ContentType=
    "application/vnd.openxmlformats-package.relationships+xml"/>
  <Default Extension="xml"  ContentType="application/xml"/>
  <Default Extension="png"  ContentType="image/png"/>
  <Override PartName="/ppt/presentation.xml" ContentType=
    "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml"/>
</Types>
</>

The decisive token is the override on /ppt/presentation.xml. In a PPTX its content type ends in ...presentationml.presentation.main+xml; in a PPSX it ends in ...presentationml.slideshow.main+xml. The whole-file MIME type is likewise application/vnd.openxmlformats-officedocument.presentationml.slideshow. Change that override string and the exact same bytes of slides become an editable presentation, which is precisely what renaming .ppsx to .pptx triggers PowerPoint to do.

Relationships: how parts point at each other

OOXML never hard-codes a path from one part to another. Instead each part that references others has a companion .rels file in a sibling _rels folder. The package’s top-level _rels/.rels names the starting part (the presentation), and ppt/_rels/presentation.xml.rels maps relationship IDs to the slides, master and theme.

<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
  <Relationship Id="rId1"
      Type=".../officeDocument/2006/relationships/slide"
      Target="slides/slide1.xml"/>
  <Relationship Id="rId2"
      Type=".../officeDocument/2006/relationships/theme"
      Target="theme/theme1.xml"/>
</Relationships>
</>

Inside presentation.xml, the slide list refers to slides only by their relationship ID, for example <p:sldId id="256" r:id="rId1"/>. The r:id is resolved through the .rels file to the real part path. This indirection is why moving media into a ppt/media folder and updating one relationship is enough to re-point an image; the slide XML itself is untouched.

Inside a slide part: the shape tree and DrawingML

Each slideN.xml is a self-contained XML document in the PresentationML namespace. Its heart is the <p:spTree> (shape tree): an ordered list of shapes, pictures, graphic frames (tables, charts) and group shapes. Every visible object is a shape with a non-visual properties block (an ID and name), a shape-properties block carrying its position and size, and, for text, a text body.

<p:sp>
  <p:nvSpPr><p:cNvPr id="2" name="Title 1"/> … </p:nvSpPr>
  <p:spPr>
    <a:xfrm>                              <!-- position + size -->
      <a:off x="838200" y="365125"/>      <!-- EMUs from top-left -->
      <a:ext cx="10515600" cy="1325563"/>
    </a:xfrm>
  </p:spPr>
  <p:txBody><a:p><a:r><a:t>Quarterly results</a:t></a:r></a:p></p:txBody>
</p:sp>
</>

Geometry uses English Metric Units (EMU), where 914400 EMU make one inch and 12700 EMU make one point. Storing coordinates as integers in EMU lets the same slide render identically whether the target is inches, centimetres or points. The text, drawing and table elements come from the shared DrawingML namespace (the a: prefix), which is why a shape’s fill, an image’s transform and a table’s cells all use the same vocabulary across PowerPoint, Word and Excel.

Masters, layouts and themes: the inheritance chain

A slide does not carry its own look. It inherits through a three-level chain: a slide master defines the base placeholders and background; a slide layout derives from a master and specialises it (Title Slide, Title and Content, and so on); and each real slide is bound to exactly one layout. Colours, fonts and effect styles come from the theme1.xml part, which defines a colour scheme of a dozen named slots (dk1, lt1, accent1accent6, two hyperlink colours) plus a major/minor font pair.

Because a slide references theme colours by name rather than by hex value, swapping the theme part recolours the whole deck at once. This is the same DrawingML theme model used across Office, so a corporate theme can be shared between a presentation, a document and a workbook.

Editing a PPSX and the PPSX vs PPSM distinction

There are three equivalent ways to get an editable copy. Open the file in PowerPoint, then File › Save As and choose PowerPoint Presentation (.pptx). Or rename the file from .ppsx to .pptx in the file manager, after which it opens in the normal editor. Or unzip it, edit the XML directly, and re-zip. All three work because, as shown above, only the content-type string differs between the two.

The one variant to watch is PPSM. A macro-enabled slide show uses the .ppsm extension and the content type ...presentationml.slideshow.macroEnabled.main+xml, and it can contain a ppt/vbaProject.bin part holding VBA code. A plain .ppsx cannot carry macros: OOXML deliberately routes all executable content through the distinct m-suffixed extensions (.pptm, .ppsm, .potm) so that a tool or mail filter can tell code-bearing files apart from inert ones by extension and content type alone.

References