Skip to content

Repository files navigation

PowerPoint Extractor

PowerPoint Extractor

Extract, view, and export data from PowerPoint files — entirely in your browser.

Live Demo · Features · Tech Stack · Development

Version License TypeScript React Tailwind CSS Vite


Features

Extraction

  • Full data extraction from both .pptx (Office Open XML) and .ppt (MS-PPT binary) files
  • Text, metadata, speaker notes, tables, shapes, themes, and color schemes
  • Image and media extraction (JPEG, PNG, EMF, WMF)
  • Multiple file processing — drag & drop or browse

Export

  • Six export formats: JSON, XML, CSV, TXT, HTML, PDF
  • Media download as ZIP archive
  • Customizable filename patterns and export settings

Interface

  • Three themes: Light, Dark, and OLED
  • Four languages: English, Spanish, German, French
  • Responsive design with mobile-first bottom navigation
  • Command palette (⌘K) for quick actions
  • Keyboard shortcuts for power users
  • PWA — installable on any device

Privacy

  • 100% client-side processing — no files leave your device
  • No analytics, no tracking, no server uploads

Supported Formats

Format Extension Support
PowerPoint 2007+ .pptx Full (metadata, slides, notes, media, themes)
PowerPoint 97-2003 .ppt Full text extraction, metadata, images

Extracted Data

PPTX files
  • Metadata — Title, creator, dates, revision, keywords, description, app version
  • Slides — Title, text content, shapes, tables
  • Speaker Notes — Full notes per slide
  • Themes — Color schemes, font schemes
  • Media — Images, videos, audio files
  • Custom Properties — Any custom document properties
PPT files (legacy)
  • Full text extraction using MS-PPT binary format specification
  • Unicode and ANSI support (UTF-16LE and Windows-1252)
  • Metadata from OLE property streams
  • Image extraction (JPEG, PNG, EMF, WMF)
  • Slide organization with automatic title detection

Export Formats

Format Description Use Case
JSON Full structured data Programming, APIs
XML Structured markup Data interchange
CSV Spreadsheet format Excel, data analysis
TXT Plain text Quick reading
HTML Web page Viewing in browser
PDF Document Printing, sharing

Tech Stack

Category Technology
Framework React 19
Language TypeScript 5.8
Styling Tailwind CSS 4
Build Vite 6
State Zustand 5
PWA vite-plugin-pwa
Parsers JSZip, CFB, pptx-parser
PDF jsPDF
Icons Lucide React
Deploy GitHub Pages

Development

Prerequisites

  • Node.js 20+
  • npm

Setup

git clone https://github.com/RobyRew/powerpoint-extractor.git
cd powerpoint-extractor
npm install
npm run dev

Build

npm run build

Preview

npm run preview
Docker
docker build -t powerpoint-extractor .
docker run -p 80:80 powerpoint-extractor

Uses multi-stage build: node:20-alpinenginx:alpine. Production-ready with gzip, caching headers, and SPA routing.

GitHub Pages Deployment

This project includes a GitHub Actions workflow that builds and deploys to GitHub Pages on every push to main.

  1. Fork or clone this repository
  2. Go to Settings → Pages
  3. Set source to GitHub Actions
  4. Push to main — the site deploys automatically

The workflow sets BASE_URL=/powerpoint-extractor/ for correct asset paths.

Static Hosting

Run npm run build and serve the dist/ folder with any static hosting provider (Netlify, Vercel, Cloudflare Pages, etc.).

Analytics (optional)

Self-hosted Umami can be wired at deploy time without rebuilding. In Dokploy → this app → Environment, set:

Variable Value
UMAMI_SCRIPT_URL https://stats.cosmincalin.es/script.js
UMAMI_WEBSITE_ID UUID from Umami → Settings → Websites

A startup script in the container (docker-entrypoint.d/30-inject-umami.sh) substitutes a <!-- UMAMI --> placeholder in index.html with the real <script defer …> tag, with data-do-not-track="true" honouring browser DNT. If either env var is missing the placeholder is just stripped — no broken script tag ships.

Credits

License

Licensed under the Apache License 2.0. You are free to use, modify, and distribute this software — but you must retain the NOTICE file and give credit to the original project and author in any copies or derivative works.


Made with ❤️ by RobyRew

About

Extract data from PowerPoint files (PPT and PPTX). Export to JSON, XML, CSV, TXT, HTML, and PDF.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages