home / skills / aviz85 / claude-skills-library / html-to-pptx

This skill converts HTML to PowerPoint PPTX with RTL support, offering text or image modes for Hebrew presentations.

npx playbooks add skill aviz85/claude-skills-library --skill html-to-pptx

Review the files below or copy the command above to add this skill to your agents.

Files (5)
skill.md
3.2 KB
---
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.

Overview

This skill converts HTML documents or web pages into PowerPoint (.pptx) presentations with strong support for Hebrew and other RTL languages. It offers multiple conversion modes (text, image, auto), slide-splitting by HTML structure or selector, and options for fonts, layout, and metadata. Use it to automate creation of editable slides or pixel-perfect slide images from HTML content.

How this skill works

The tool parses the input HTML or fetches a URL, maps HTML blocks to PPTX slides, and adds native text elements or embedded screenshots depending on the selected mode. It detects slide boundaries from common tags (.section, article, .slide, hr) or a custom CSS selector and applies RTL handling, fonts, layout, and metadata. For complex layouts you can choose image mode to render the page and embed screenshots for exact visual fidelity.

When to use it

  • You need a PowerPoint generated programmatically from HTML or a live URL.
  • You are creating Hebrew or other RTL-language presentations and need correct text direction and fonts.
  • You want editable native text slides for simple HTML content.
  • You need pixel-perfect slides from complex HTML/CSS layouts (use image mode).
  • You want to split a long HTML document into multiple slides automatically.

Best practices

  • Mark documents with proper language and direction (e.g., <html lang="he" dir="rtl">) when producing Hebrew slides.
  • Force RTL with the --rtl flag if auto-detection is uncertain.
  • Choose text mode for editable content and image mode for complex layout fidelity.
  • Specify a Hebrew-supporting font (Heebo, David, Noto Sans Hebrew) to avoid rendering issues.
  • Use --slide-per with a CSS selector for precise slide boundaries when default heuristics don’t match your structure.

Example use cases

  • Convert a static documentation page or blog post into a slide deck for a talk.
  • Generate a Hebrew presentation from a localized HTML document, preserving RTL and fonts.
  • Create teacher slides by piping generated HTML into the converter for rapid lesson prep.
  • Turn complex marketing landing pages into pixel-perfect slide screenshots for demos.
  • Split a long report into slides using section/article tags or a custom selector.

FAQ

How do I ensure Hebrew text appears right-to-left?

Add dir="rtl" or use the --rtl flag; also choose a Hebrew-supporting font like Heebo or David.

When should I use image mode instead of text mode?

Use image mode for complex CSS layouts, web components, or when exact visual fidelity is required; use text mode for editable, accessible slides.