Skill detail

html-to-pptx

Direct HTML-to-PPTX converter with editable and image modes.

MatchDirectReviewed for powerpoint
Sourceaviz85/claude-skills-libraryExternal source
Reported installs126Popularity signal only

Inspect before use

Automated review checks relevance, not safety or endorsement. Read the source instructions before using this skill.

Saved source preview

SKILL.md

The saved excerpt is a snapshot from review. The external source remains the complete and most current version.

---
name: html-to-pptx
description: "Convert HTML to PowerPoint (PPTX) with excellent Hebrew/RTL support. Use when the user asks to 'convert HTML to PowerPoint', 'create presentation from HTML', 'generate PPTX', 'make slides from HTML', or needs to create PowerPoint presentations programmatically."
version: "1.0.0"
author: aviz85
tags:
  - powerpoint
  - pptx
  - conversion
  - html
  - rtl
  - hebrew
  - presentations
setup_complete: false
setup: "./SETUP.md"
---

# HTML to PowerPoint Converter

> **First time?** If `setup_complete: false` above, run `./SETUP.md` first, then set `setup_complete: true`.

Convert HTML to PowerPoint (.pptx) with excellent Hebrew/RTL support using PptxGenJS.

## Setup (One-time)

```bash
cd ~/.claude/skills/html-to-pptx && npm install
```

## Quick Usage

### Basic conversion:
```bash
node ~/.claude/skills/html-to-pptx/scripts/html-to-pptx.js input.html output.pptx
```

### Hebrew document with RTL:
```bash
node ~/.claude/skills/html-to-pptx/scripts/html-to-pptx.js hebrew.html presentation.pptx --rtl
```

### Convert URL to PowerPoint:
```bash
node ~/.claude/skills/html-to-pptx/scripts/html-to-pptx.js https://example.com slides.pptx
```

### Complex HTML as images (pixel-perfect):
```bash
node ~/.claude/skills/html-to-pptx/scripts/html-to-pptx.js complex.html slides.pptx --mode=image
```

## Conversion Modes

| Mode | Description | Best For |
|------|-------------|----------|
| `text` | Parse HTML, create native PPTX elements | Simple HTML, editable text |
| `image` | Screenshot HTML, embed as images | Complex layouts, exact rendering |
| `auto` | Auto-detect best mode | Default |

## Options

| Option | Description | Default |
|--------|-------------|---------|
| `--mode=<mode>` | text, image, auto | auto |
| `--rtl` | Force RTL for Hebrew/Arabic | auto-detect |
| `--title=<title>` | Presentation title | auto |
| `--author=<author>` | Author name | AVIZ |
| `--layout=<layout>` | LAYOUT_16x9, LAYOUT_4x3 | LAYOUT_16x9 |
| `--font=<font>` | Default font | Heebo (Hebrew) / Arial |
| `--font-size=<size>` | Font size in points | 18 |
| `--background=<color>` | Background color (hex) | - |
| `--slide-per=<selector>` | Split slides by CSS selector | - |
| `--wait=<ms>` | Wait for rendering (image mode) | 2000 |

## Examples

### Hebrew presentation:
```bash
node ~/.claude/skills/html-to-pptx/scripts/html-to-pptx.js hebrew.html slides.pptx --rtl --font=Heebo
```

### Split by sections:
```bash
node ~/.claude/skills/html-to-pptx/scripts/html-to-pptx.js doc.html slides.pptx --slide-per=section
```

### Custom styling:
```bash
node ~/.claude/skills/html-to-pptx/scripts/html-to-pptx.js doc.html slides.pptx --font=David --font-size=24 --background=F5F5F5
```

### Pipe HTML:
```bash
echo "<h1>שלום עולם</h1>" | node ~/.claude/skills/html-to-pptx/scripts/html-to-pptx.js - output.pptx --rtl
```

## Hebrew Best Practices

1. Use `<html lang="he" dir="rtl">` in HTML
2. Always add `--rtl` flag
3. Use Hebrew-supporting fonts: Heebo, David, Noto Sans Hebrew
4. For complex layouts, use `--mode=image` for pixel-perfect results

## Slide Structure

The converter auto-detects slide boundaries:
1. `<section>` elements
2. `<article>` elements
3. `.slide` class
4. `<hr>` elements

Or use `--slide-per=".my-slide"` for custom selectors.
Read the full source on GitHub (opens external page)
Context

Related work