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

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