A Claude Code skill that converts a PDF into an
editable PowerPoint (.pptx) where every piece of text is a real, editable
text box — never a flattened image of the page.
The page's graphics (charts, photos, logos) are kept as a background image with the original text erased, so the editable boxes on top don't double up with baked-in text. The hard part — and what most converters get wrong — is the erase step: a naïve converter paints a flat grey rectangle behind every word, which is invisible on a flat page but shows up as an ugly grey box over a photo or gradient. This skill's erase is texture-aware and avoids that.
- Multi-column layouts (auto-scaled column splitting)
- Photo / gradient / image-panel backgrounds (feathered, texture-aware erase)
- Font mapping to safe Office fonts and per-cell text colour
- Slide size matched to the original PDF page
Drop the folder into your Claude Code skills directory:
git clone https://github.com/<you>/pdf-to-pptx.git ~/.claude/skills/pdf-to-pptxClaude will pick it up automatically and invoke it when you ask to turn a PDF into PowerPoint/slides.
The converter relies on:
- poppler — provides
pdftoppmfor 150-DPI rasterisation - pdfplumber — text + bounding-box extraction
- Pillow — background image manipulation (the feathered erase)
- python-pptx —
.pptxoutput
# system
sudo apt install poppler-utils # Debian/Ubuntu; or `brew install poppler` on macOS
# python
pip install pdfplumber Pillow python-pptxNote: this uses pdfplumber, not PyMuPDF/fitz, for all text extraction.
Standalone:
python scripts/pdf2pptx.py <input.pdf>It writes <input_basename>.pptx next to where it's run and prints a report.
Via Claude Code, just ask: "turn this PDF into editable PowerPoint slides."
See SKILL.md for the full pipeline and the guarantees baked into the script, and references/qa.md for the mandatory QA pass.
MIT — see LICENSE.