Extract Text and Speaker Notes from a PowerPoint
Getting the words out of a deck usually means opening it, clicking into every slide, and remembering that the speaker notes are somewhere else entirely. Drop the .pptx here instead and you get both: the text of each slide and its notes, in the order the deck actually plays, ready to copy or save as plain text or markdown. The file is read inside your browser and never uploaded.
Drop a .pptx to pull its text out
Slide text and speaker notes, per slide, in presentation order. The file is read inside your browser — it is never uploaded.
Rebuild the deck instead of just reading it
Hand the extracted outline to Moda and get a designed, editable deck back — PPTX export included.
Try Moda free →A .pptx is a zip full of XML, which is why this works offline
Since PowerPoint 2007 a .pptx has been an ordinary zip archive containing one XML part per slide, plus relationship files describing how those parts fit together. Renaming one to .zip and opening it shows the whole structure. That is why extraction needs no server, no conversion service and no upload: your browser can unzip the archive and read the XML directly. The older binary .ppt format is a completely different thing — a compound OLE container — and cannot be read this way, so this page declines it by name and tells you to re-save.
Slide order is not file order, and notes are not numbered
The part named slide1.xml is not necessarily the first slide. Part names follow the order slides were created, so any deck that has been reordered — which is every deck — will come out shuffled if you simply sort by filename. The real running order lives in a list inside presentation.xml, and this page reads it. Speaker notes work the same way: notesSlide3.xml belongs to whichever slide points at it through its own relationships file, not to slide 3. Both of those are quiet bugs — the output looks perfectly plausible and is attached to the wrong slides — which is why they are worth naming.
What comes out, and what does not
Everything PowerPoint stores as text runs is extracted: titles, bullets, text boxes, table cells, and text inside grouped shapes. Line breaks you typed inside a paragraph are preserved. Three things are not extracted, and the reason differs in each case. Words that are part of an image are pixels, not characters, and only OCR would find them — which this page deliberately does not do. Chart labels and SmartArt keep their text in separate parts of the package with their own structure, so pulling them in would mean a second parser producing text with no reliable slide position. Embedded objects — a spreadsheet dropped into a slide — are whole documents in their own right. Rather than half-recovering any of these, the page states plainly that they are out of scope.
Text or markdown, and why both are offered
Plain text marks each slide with a simple header and is the right choice when the destination is a chat message, an email, or another tool that will parse it. Markdown turns each slide into a heading, its content into a bullet list, and speaker notes into a blockquote, which is what you want when the extract is going into a document, a wiki page, or a prompt. Both are rendered from the same extraction with the same switches, so the only difference between them is formatting — you will never find a line in one that is missing from the other.
Frequently asked questions
How do I get the speaker notes out of a PowerPoint?
Drop the .pptx here and leave the “speaker notes” switch on. Inside PowerPoint itself the equivalent is File → Export → Create Handouts, which sends the deck and its notes to Word — slower, and it needs Word installed. This page reads the notes parts of the file directly and pairs each one with the slide that actually references it.
Is my presentation uploaded?
No. The archive is unzipped and parsed by your own browser; no part of the file is sent anywhere, and nothing is stored between visits. You can verify it by opening your browser’s network tab before dropping the file — you will see no request carrying it.
Why is some text on my slide missing from the output?
Almost always because it is not text. Words inside a screenshot, a logo, or an exported chart image are pixels. The other common case is a chart or a SmartArt graphic, whose labels are stored in separate parts of the package and are not read here. If a slide has no extractable text at all it is counted in the “slides with no text” line rather than silently skipped.
Can it open a .ppt, a .potx or Google Slides?
Only .pptx. A legacy .ppt is a binary format that browsers cannot open, and a .potx template usually has no slide parts to read. For Google Slides, use File → Download → Microsoft PowerPoint (.pptx) and drop the result here; Keynote exports the same way.
What about password-protected decks?
They cannot be read. An encrypted Office file is not a zip at all — it is an OLE container holding the encrypted package — so there is nothing to unzip without the password. Removing protection in PowerPoint and re-saving produces a normal .pptx that works here. Adding password cracking is not something this page will ever do.
How large a deck can it handle?
Up to 500 slides and 60 MB, both of which are far above a normal presentation. A deck past either limit is refused with a message naming the limit rather than freezing the tab, and splitting the file into two passes works.