# PPTX Auto Windows

> Generate PPTX decks on Windows using bash and Python. Use when the user asks to auto-create slides, build a .pptx from a structured outline/spec, or convert HTML (optionally to PDF) before embedding into slides. Covers python-pptx workflows, template/theme reuse, and lightweight HTML-to-PDF rendering when available. Use when this capability is needed.

- Skill: `tomevault-io/pptx-auto-windows` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/pptx-auto-windows`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/pptx-auto-windows/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/pptx-auto-windows

---


# Pptx Auto Windows

## Overview

Create .pptx decks on Windows with Python-only tooling, defaulting to `python-pptx` and a structured slide spec. Optionally render HTML to PDF first, then embed as full-bleed images if a renderer is available.

## Workflow

1. **Collect inputs**
Ask for:
- Slide outline and desired layout types (title, bullets, image, two-column)
- Theme preference and whether a template `.pptx` should be used
- Assets (images, logos) and target aspect ratio (16:9 or 4:3)
- Whether an HTML-first workflow is required

2. **Choose the build path**
- **Path A (default):** Build directly with `python-pptx` using a slide spec.
- **Path B (optional):** Generate HTML, render to PDF (if `weasyprint` is installed), then place each rendered page as a full-bleed image in PPTX. Use only if the user explicitly wants HTML-first output and accepts the renderer dependency.

3. **Generate slide spec**
Draft a JSON/YAML spec from the outline, confirm structure, then run `scripts/pptx_from_spec.py`.

4. **Build the deck**
Run the script, inspect the output, and iterate on layout or assets.

## Quick Start (Path A)

1. Create a spec (see `references/slide_spec.md`).
2. Run:

```bash
python scripts/pptx_from_spec.py --spec specs/demo.json --out output/demo.pptx --widescreen
```

## Optional HTML -> PDF -> PPTX (Path B)

1. Render HTML to PDF:

```bash
python scripts/html_to_pdf.py --html slides/index.html --out build/slides.pdf
```

2. Convert PDF pages to images using a tool the user already has (Poppler, ImageMagick, etc.).
3. Insert images into PPTX as full-bleed slides using `scripts/pptx_from_spec.py` with `type: image` slides.

## Scripts

- `scripts/pptx_from_spec.py`:
  - Build a PPTX from a JSON/YAML spec.
  - Supports `title`, `bullets`, `image`, and `two_col` slide types.
  - Optional `--template` to reuse theme layouts from an existing `.pptx`.

- `scripts/html_to_pdf.py`:
  - Render HTML to PDF with `weasyprint` if installed.
  - Fails with a clear install hint if the renderer is missing.

## References

- `references/slide_spec.md`: Spec format, examples, and layout notes.
- `references/dependencies.md`: Minimal dependency guidance for `python-pptx` and optional HTML-to-PDF rendering.

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/megasuperkitty) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-11 -->

