PDF转PPT工具

notebookLM2PPT是一款将PDF幻灯片转换为PPT演示文稿的工具,支持矢量图形保持最高分辨率,并提供命令行、Web UI和API多种使用方式。

  • by neosun100
  • Python
  • 本地部署
  • 17 星标
  • 更新于
在 GitHub 查看 neosun100/notebookLM2PPT

使用说明

英语 | 简体中文 | 繁体中文 | 日本语

笔记本LM2PPT

使用将PDF幻灯片转换为PowerPoint演示文稿 矢量图形 (最高分辨率)。

✨ 特性

  • 🎯 矢量图形 -在生成的PPT中保持最高分辨率
  • 📝 元数据转换 -保留标题、作者和其他元数据
  • 📐 自动检测 -自动检测幻灯片大小和纵横比
  • 🚀 易于使用 -简单的命令行界面,输出美观
  • 📄 页面选择 -将特定页面转换为 --pages 选项
  • ⚡ 并行处理 -通过以下方式加快转换速度 --parallel 选项
  • 🔍 依赖检查 -自动检查所需工具
  • 🎨 Web 界面 -支持拖放的现代web界面
  • 📡 REST API -具有异步处理的FastAPI服务器
  • 🔧 MCP支持 -人工智能集成的模型上下文协议
  • 🐳 Docker就绪 -多功能Docker镜像可用
  • 💎 玻璃形态设计 -超现代磨砂玻璃UI,带霓虹效果
  • 🌍 18种语言 -全面的国际化支持

🌍 支持的语言

语言 代码 语言 代码
英语 意大利语 it
简体中文 zh-CN Русский ru
繁体中文 zh-TW العربية ar
日本语 ja हिन्दी hi
韩语 ko th
Français 124 fr 124越南语124 vi🙂
德语 荷兰语
西班牙语 ES 波尔斯基 PL
葡萄牙语 pt 土耳其语 tr

🎯 动机

  • LaTeX 用户可以轻松转换 beamer 从PDF到PPT的幻灯片
  • 类型 用户可以轻松转换 touying 从PDF到PPT的幻灯片

🚀 快速开始

选项1:命令行(pipx)

# Install via pipx (recommended)
pipx install notebooklm2ppt

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

选项2:Web用户界面(Docker)

对于x86_64/AMD64(Linux服务器、Intel Mac):

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

对于ARM64(苹果Silicon Mac、ARM服务器):

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

自动检测架构:

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

访问地址: http://localhost:8100

选项3:API服务器

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

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

API文件: http://localhost:8100/docs

📦 安装

先决条件

安装依赖项

macOS:

brew install pdf2svg inkscape

Ubuntu/Debian:

sudo apt-get install pdf2svg inkscape

窗户:

安装笔记本LM2PPT

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

# Or install with pip
pip install notebooklm2ppt

📖 用法

基本用法

# Specify output file
pdf2ppt input.pdf output.pptx

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

# Verbose mode
pdf2ppt input.pdf --verbose

高级用法

# 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

命令行选项

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

🔧 技术实现

  1. 使用将PDF转换为SVG pdf2svg
  2. 使用将SVG转换为EMF inkscape (由于python pptx的限制)
  3. 使用以下命令将EMF插入PPT python-pptx

🛠️ 技术栈

组件 技术
语言 Python 3.9+
PDF处理 pypdf
PPT生成 python pptx
PDF转换为SVG pdf2svg
SVG到EMF Inkscape
CLI输出 丰富

⚠️ 已知问题

透明背景

由于依赖性限制,不完全支持具有透明度的元素。当检测到此类问题时,您将收到警告。您可以手动复制生成的SVG来解决问题。

看 #1 了解更多详情。

🤝 贡献

欢迎投稿!请随时提交拉取请求。

  1. 克隆该仓库
  2. 创建功能分支(git checkout -b feature/AmazingFeature)
  3. 提交您的更改(git commit -m 'Add some AmazingFeature')
  4. 推到分支(git push origin feature/AmazingFeature)
  5. 打开拉取请求

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

版权所有©2023-2024泰迪·范·杰瑞(赵武琼)

⭐ 星迹

📱 关注我们