SuperAPI AI Directory

pptx

Office & productivity

View repository

Updated 10-15 23:42

About this skill

PPTX Skill

Quick Reference

Task Guide
Read/analyze content python -m markitdown presentation.pptx
Edit or create from template Read references/editing.md and references/ooxml.md
Create from scratch (HTML) Read references/html2pptx.md
Create from scratch (PptxGenJS) Read references/pptxgenjs.md

Reading Content

# Text extraction
python -m markitdown presentation.pptx
Visual overview

python scripts/thumbnail.py presentation.pptx

Raw XML

python scripts/unpack.py presentation.pptx unpacked/


______________________________________________________________________

## Editing Workflow

**Read [references/editing.md](references/editing.md) for OOXML editing details.**

1. Analyze template with `thumbnail.py`
2. Unpack → manipulate slides → edit content → clean → pack

______________________________________________________________________

## Creating from Scratch

Two approaches:

- **HTML→PPTX** (via html2pptx.js): Read [references/html2pptx.md](references/html2pptx.md)
- **PptxGenJS** (JavaScript library): Read [references/pptxgenjs.md](references/pptxgenjs.md)

______________________________________________________________________

## Creating from a Template

Detailed workflow using `inventory.py`, `rearrange.py`, and `replace.py`:

1. **Extract template text AND create visual thumbnail grid**:

   ```bash
   python -m markitdown template.pptx > template-content.md
   python scripts/thumbnail.py template.pptx
  1. Analyze template and save inventory:

    python scripts/inventory.py working.pptx text-inventory.json
    
  2. Duplicate, reorder, and delete slides:

    python scripts/rearrange.py template.pptx working.pptx 0,34,34,50,52
    
  3. Apply text replacements:

    python scripts/replace.py working.pptx replacement-text.json output.pptx
    

Design Ideas

Don't create boring slides. Plain bullets on a white background won't impress anyone. Consider ideas from this list for each slide.

Before Starting

  • Pick a bold, content-informed color palette: The palette should feel designed for THIS topic. If swapping your colors into a completely different presentation would still "work," you haven't made specific enough choices.
  • Dominance over equality: One color should dominate (60-70% visual weight), with 1-2 supporting tones and one sharp accent.
  • Dark/light contrast: Dark backgrounds for title + conclusion slides, light for content ("sandwich" structure).
  • Commit to a visual motif: Pick ONE distinctive element and repeat it — rounded image frames, icons in colored circles, thick single-side borders.

Color Palettes

Theme Primary Secondary Accent
Midnight Executive 1E2761 (navy) CADCFC (ice blue) FFFFFF (white)
Forest & Moss 2C5F2D (forest) 97BC62 (moss) F5F5F5 (cream)
Coral Energy F96167 (coral) F9E795 (gold) 2F3C7E (navy)
Warm Terracotta B85042 (terracotta) E7E8D1 (sand) A7BEAE (sage)
Ocean Gradient 065A82 (deep blue) 1C7293 (teal) 21295C (midnight)
Charcoal Minimal 36454F (charcoal) F2F2F2 (off-white) 212121 (black)
Teal Trust 028090 (teal) 00A896 (seafoam) 02C39A (mint)
Berry & Cream 6D2E46 (berry) A26769 (dusty rose) ECE2D0 (cream)

Typography

Header Font Body Font
Georgia Calibri
Arial Black Arial
Trebuchet MS Calibri
Impact Arial
Element Size
Slide title 36-44pt bold
Section header 20-24pt bold
Body text 14-16pt
Captions 10-12pt muted

Avoid

  • Don't repeat the same layout — vary columns, cards, and callouts across slides
  • Don't center body text — left-align paragraphs and lists; center only titles
  • Don't default to blue — pick colors that reflect the specific topic
  • Don't create text-only slides — add images, icons, charts, or visual elements
  • NEVER use accent lines under titles — hallmark of AI-generated slides; use whitespace or background color instead

QA (Required)

Assume there are problems. Your job is to find them.

Content QA

python -m markitdown output.pptx

Check for missing content, typos, wrong order. When using templates, check for leftover placeholder text:

python -m markitdown output.pptx | grep -iE "xxxx|lorem|ipsum|this.*(page|slide).*layout"

Visual QA

Convert slides to images and inspect for overlapping elements, text overflow, contrast issues, and positioning problems. See Converting to Images.

Verification Loop

  1. Generate slides → Convert to images → Inspect
  2. List issues found (if none found, look again more critically)
  3. Fix issues
  4. Re-verify affected slides — one fix often creates another problem
  5. Repeat until a full pass reveals no new issues

Do not declare success until you've completed at least one fix-and-verify cycle.


Scripts

Script Purpose
unpack.py Extract and pretty-print PPTX
pack.py Repack with validation
validate.py Validate PPTX XML against schemas
add_slide.py Duplicate slide or create from layout
clean.py Remove orphaned files
thumbnail.py Create visual grid of slides
inventory.py Extract text inventory from presentation
rearrange.py Duplicate, reorder, and delete slides
replace.py Apply text replacements to shapes
html2pptx.js Convert HTML slides to PowerPoint

Converting to Images

Convert presentations to individual slide images for visual inspection:

python scripts/soffice.py --headless --convert-to pdf output.pptx
pdftoppm -jpeg -r 150 output.pdf slide

This creates slide-01.jpg, slide-02.jpg, etc.

To re-render specific slides after fixes:

pdftoppm -jpeg -r 150 -f N -l N output.pdf slide-fixed

Dependencies

  • pip install "markitdown[pptx]" - text extraction
  • pip install Pillow - thumbnail grids
  • npm install -g pptxgenjs - creating from scratch (PptxGenJS approach)
  • npm install -g playwright - HTML rendering (html2pptx approach)
  • LibreOffice (soffice) - PDF conversion (via scripts/soffice.py)
  • Poppler (pdftoppm) - PDF to images
  • pip install defusedxml - secure XML parsing