Skip to main content
Glama

English | 简体中文 | 繁體中文 | 日本語

notebookLM2PPT

PyPI version Python License: MIT GitHub stars

Convert PDF Slides to PowerPoint Presentations with Vector Graphics (highest resolution).

notebookLM2PPT Web UI

✨ Features

  • 🎯 Vector Graphics - Maintains highest resolution in generated PPT

  • 📝 Metadata Conversion - Preserves title, author and other metadata

  • 📐 Auto Detection - Automatically detects slide size and aspect ratio

  • 🚀 Easy to Use - Simple command line interface with beautiful output

  • 📄 Page Selection - Convert specific pages with --pages option

  • Parallel Processing - Speed up conversion with --parallel option

  • 🔍 Dependency Check - Automatically checks for required tools

  • 🎨 Web UI - Modern web interface with drag-and-drop support

  • 📡 REST API - FastAPI server with async processing

  • 🔧 MCP Support - Model Context Protocol for AI integration

  • 🐳 Docker Ready - All-in-one Docker image available

  • 💎 Glassmorphism Design - Ultra modern frosted glass UI with neon effects

  • 🌍 18 Languages - Full internationalization support

🌍 Supported Languages

Language

Code

Language

Code

English

en

Italiano

it

简体中文

zh-CN

Русский

ru

繁體中文

zh-TW

العربية

ar

日本語

ja

हिन्दी

hi

한국어

ko

ไทย

th

Français

fr

Tiếng Việt

vi

Deutsch

de

Nederlands

nl

Español

es

Polski

pl

Português

pt

Türkçe

tr

🎯 Motivation

  • LaTeX users can easily convert beamer slides from PDF to PPT

  • Typst users can easily convert touying slides from PDF to PPT

🚀 Quick Start

Option 1: Command Line (pipx)

# Install via pipx (recommended)
pipx install notebooklm2ppt

# Convert PDF to PPT
pdf2ppt input.pdf output.pptx

Option 2: Web UI (Docker)

For x86_64 / AMD64 (Linux servers, Intel Macs):

docker run -d -p 8100:8100 neosun/notebooklm2ppt:1.2.0-amd64

For ARM64 (Apple Silicon Macs, ARM servers):

docker run -d -p 8100:8100 neosun/notebooklm2ppt:1.2.0-arm64

Auto-detect architecture:

docker run -d -p 8100:8100 neosun/notebooklm2ppt:latest

Access at: http://localhost:8100

Option 3: API Server

# Install with server dependencies
pip install "notebooklm2ppt[server]"

# Start server
python -m uvicorn web.app:app --host 0.0.0.0 --port 8100

API Documentation: http://localhost:8100/docs

📦 Installation

Prerequisites

  • Python >= 3.9

  • pdf2svg - for PDF to SVG conversion

  • Inkscape - for SVG to EMF conversion

Install Dependencies

macOS:

brew install pdf2svg inkscape

Ubuntu/Debian:

sudo apt-get install pdf2svg inkscape

Windows:

Install notebookLM2PPT

# Recommended: Install with pipx (isolated environment)
pipx install notebooklm2ppt

# Or install with pip
pip install notebooklm2ppt

📖 Usage

Basic Usage

# Specify output file
pdf2ppt input.pdf output.pptx

# Auto-generate output filename (input.pptx)
pdf2ppt input.pdf

# Verbose mode
pdf2ppt input.pdf --verbose

Advanced Usage

# Convert specific pages
pdf2ppt input.pdf -p 1-5,7,9-11

# Parallel processing (4 workers)
pdf2ppt input.pdf -j 4

# Force overwrite existing file
pdf2ppt input.pdf output.pptx --force

# Keep temporary files for debugging
pdf2ppt input.pdf --no-clean

Command Line Options

usage: pdf2ppt [-h] [-v] [--verbose] [--no-clean] [--no-check] [--force]
               [--pages PAGES] [--parallel PARALLEL]
               [--pdf2svg-path PATH] [--inkscape-path PATH]
               input [output]

positional arguments:
  input                 Input PDF file
  output                Output PPTX file (default: input.pptx)

options:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit
  --verbose             Verbose output
  --no-clean            Keep temporary files
  --no-check            Skip SVG filter check
  --force, -f           Overwrite output file if exists
  --pages, -p PAGES     Page range (e.g., "1-5,7,9-11")
  --parallel, -j N      Parallel workers (default: 1)
  --pdf2svg-path PATH   Path to pdf2svg executable
  --inkscape-path PATH  Path to inkscape executable

🔧 Technical Implementation

  1. Convert PDF to SVG using pdf2svg

  2. Convert SVG to EMF using inkscape (due to python-pptx limitations)

  3. Insert EMF into PPT using python-pptx

🛠️ Tech Stack

Component

Technology

Language

Python 3.9+

PDF Processing

pypdf

PPT Generation

python-pptx

PDF to SVG

pdf2svg

SVG to EMF

Inkscape

CLI Output

rich

⚠️ Known Issues

Transparent Background

Elements with transparency are not fully supported due to dependency limitations. You will receive a warning when such issues are detected. You can manually copy the generated SVG to fix the problem.

See #1 for more details.

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/AmazingFeature)

  3. Commit your changes (git commit -m 'Add some AmazingFeature')

  4. Push to the branch (git push origin feature/AmazingFeature)

  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

Copyright © 2023-2024 Teddy van Jerry (Wuqiong Zhao)

⭐ Star History

Star History Chart

📱 Follow Us

WeChat

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Looking for Admin?

Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/neosun100/notebookLM2PPT'

If you have feedback or need assistance with the MCP directory API, please join our Discord server