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-pptxReview the files below or copy the command above to add this skill to your agents.
---
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.
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.
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.
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.