pptx

Create, edit, and validate PowerPoint .pptx and .potx presentation files.

Updated Jun 21, 2025
One-click install
npx skills add https://github.com/seriiserii825/dotfiles --skill pptx-seriiserii825
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: pptx
Source: https://github.com/seriiserii825/dotfiles/tree/main/apps/claude/skills/synced/48e265c5-be08-4ca3-88ab-78707f398de7_1df978a8-b501-4d2b-b556-83317b565971/pptx
Command: npx skills add https://github.com/seriiserii825/dotfiles --skill pptx-seriiserii825

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires pptxgenjs, markitdown, Pillow, defusedxml, lxml, react-icons, react, react-dom, sharp, and includes scripts (resource) components.

What problem does it solve? Working with PowerPoint files programmatically is error-prone: a .pptx is a ZIP archive of XML parts, and small mistakes in relationships, content types, or chart XML produce files PowerPoint refuses to open. This Skill provides the scripts, validation tooling, and design guidance to create, edit, read, and QA .pptx and .potx decks reliably. ## Core Features & Use Cases - Deck creation with pptxgenjs: Generate new presentations programmatically, with documented gotchas for layouts, colors, charts, shadows, and text boxes that otherwise corrupt files. - Template-based editing: Unpack existing decks or .potx templates, duplicate slides with full package bookkeeping via add_slide.py, edit slide XML, clean orphaned parts, and repack. - Reading and analysis: Extract slide text with markitdown and render labeled thumbnail grids of every slide for layout selection. - Validation and visual QA: Run schema, relationship, content-type, and chart checks against the OOXML XSDs, then convert slides to images via LibreOffice and pdftoppm to catch overflow, overlap, and contrast defects. - Use Case: A user asks for a pitch deck as a .pptx file. The Skill generates it with pptxgenjs, validates the output against the PowerPoint schema, renders each slide to an image, and fixes any text overflow before delivery. ## Quick Start Create a five-slide PowerPoint presentation about quarterly sales results and save it as a .pptx file.

Frequently Asked Questions about pptx

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a PowerPoint file programmatically with pptxgenjs?

Write a Node script that requires pptxgenjs, set pres.layout before adding slides, and use hex colors without a leading #. Call writeFile() once per output file, then validate the result with the OOXML schema validator before delivery.

How do I edit an existing .pptx or use a .potx template?

Unzip the package, duplicate slides with add_slide.py so all relationships and content types register correctly, edit the slide XML, run clean.py to remove orphaned parts, then rezip from inside the directory and validate against the original template.

Why does PowerPoint say my generated pptx file is corrupt?

Common causes are hex colors with a # prefix, negative shadow offsets, outEnd data labels on stacked charts, and combo charts missing valAxes or catAxes entries. The validate.py script detects these faults and names the fix for each.

Can python-pptx duplicate a slide or preserve formatting?

python-pptx cannot duplicate slides; its only entry point is add_slide(layout). Assigning text_frame.text collapses paragraphs into a single unstyled run, so assign run.text instead, and use add_slide.py for duplication with full package bookkeeping.

How do I extract text from a .pptx file?

Run markitdown on the .pptx file to get one text block per slide under slide-number markers. For a visual overview, thumbnail.py renders a labeled grid of every slide through LibreOffice and pdftoppm.

Does this approach support legacy .ppt files?

Legacy .ppt files must be converted to .pptx first using the LibreOffice soffice wrapper in headless mode. After conversion, all editing, validation, and rendering workflows apply normally.