将 PDF 转换为可编辑 PowerPoint 演示文稿的工具
Project description
🚀 NotebookLM2PPT - 将 PDF 转换为可编辑 PowerPoint 的自动化工具
📝 项目简介
NotebookLM2PPT 是一款强大的自动化工具,旨在将不可编辑的 PDF 文档(特别是 NotebookLM 生成的演示文稿)转换为完全可编辑的 PowerPoint 演示文稿。
💡 核心价值
- 打破限制:将 NotebookLM 生成的精美但不可编辑的 PDF 转化为可二次创作的 PPT。
- 智能去水印:内置针对 NotebookLM 的智能水印去除算法。
- 全自动化:利用微软电脑管家的“智能圈选”功能,自动完成截图、识别、转换和合并的全流程。
- 通用性:不仅限于 NotebookLM,适用于任何需要将 PDF 转换为可编辑 PPT 的场景。
🛠️ 工作原理
本工具通过模拟人工操作,实现了一套高效的转换流程:
graph TD
A[PDF 文件] --> B[PDF 转 PNG 图片]
B --> C{是否启用去水印?}
C -- 是 --> D[智能去除 NotebookLM 水印]
C -- 否 --> E[保留原始图像]
D --> F[全屏显示图片]
E --> F
F --> G[调用微软电脑管家智能圈选]
G --> H[自动点击'转换为PPT']
H --> I[从下载目录提取生成的 PPT]
I --> J[合并所有单页 PPT]
J --> K[生成最终 PowerPoint 文件]
✨ 主要功能
- 📄 高质量转换:使用 notebooklm2ppt/pdf2png.py 确保 PDF 到图片的无损转换。
- 🖼️ 智能修复:notebooklm2ppt/utils/image_inpainter.py 自动识别并抹除 NotebookLM 的特定水印。
- 🤖 自动化流程:notebooklm2ppt/utils/screenshot_automation.py 负责模拟快捷键 and 鼠标点击,实现无人值守操作。
- 🔄 无缝合并:notebooklm2ppt/ppt_combiner.py 将零散的幻灯片完美整合。
- ⚙️ 高度可定制:支持 DPI、延迟、显示比例等多种参数微调。
🚀 快速开始
1. 系统要求
- 操作系统: Windows 10/11 (必须,因为依赖微软电脑管家)
- Python: 3.8 或更高版本
- 软件依赖:
- Microsoft PowerPoint: 用于生成和合并幻灯片。
- 微软电脑管家: 必须安装并确保版本 $\ge$ 3.17.50.0。
2. 配置微软电脑管家
- 打开微软电脑管家 -> 工具箱。
- 找到 智能圈选,确保其已开启。
- 默认快捷键应为
Ctrl + Shift + A。如果修改了,请同步修改代码中的配置。 - 测试:手动按下快捷键,确保能看到圈选界面并出现“转换为PPT”选项。
3. 安装
方式 A:下载预编译版本(推荐)
直接前往 Releases 页面下载最新的 .exe 执行文件。无需安装 Python 环境,开箱即用。
方式 B:通过 pip 安装
如果你已经安装了 Python,可以直接通过 pip 安装:
pip install notebooklm2ppt -U
方式 C:从源码安装
pip install git+https://github.com/elliottzheng/NotebookLM2PPT.git
📖 使用指南
图形界面 (GUI)
如果你更喜欢使用图形界面,只需直接运行程序而不带任何参数:
notebooklm2ppt
或者
python main.py
这将启动一个简单的图形界面,你可以通过它选择文件、设置参数并查看转换进度。
命令行界面 (CLI)
安装后,你可以直接在命令行中使用 notebooklm2ppt 命令:
# 处理指定 PDF
notebooklm2ppt path/to/your/document.pdf
或者
python -m notebooklm2ppt path/to/your/document.pdf
你可以在任何目录下运行该命令,程序会在当前目录下创建一个 workspace 文件夹存放中间文件和最终输出的 PPT。
也可以clone本项目后通过 python main.py 运行:
python main.py path/to/your/document.pdf
进阶用法
| 场景 | 命令示例 |
|---|---|
| 通用 PDF 转换 (不带去水印) | notebooklm2ppt --no-inpaint my_doc.pdf |
| 高分辨率转换 (提高识别率) | notebooklm2ppt --dpi 200 my_doc.pdf |
| 调整显示比例 (适配小屏幕) | notebooklm2ppt -s 0.7 my_doc.pdf |
| 自定义输出路径 | notebooklm2ppt -o my_workspace my_doc.pdf |
完整参数说明
| 参数 | 简写 | 说明 | 默认值 |
|---|---|---|---|
pdf_file |
- | 目标 PDF 文件路径 | - |
--delay |
-d |
每页处理间的等待延迟(秒) | 2 |
--timeout |
-t |
等待 PPT 生成的超时时间(秒) | 50 |
--dpi |
- | 渲染图片的 DPI(去水印建议 150) | 150 |
--no-inpaint |
- | 禁用 NotebookLM 水印去除功能 | False |
--size-ratio |
-s |
图片在屏幕上的显示比例 (0-1) | 0.8 |
--output |
-o |
工作文件存放目录 | workspace |
📁 项目结构
NotebookLM2PPT/
├── main.py # 程序主入口
├── requirements.txt # 依赖清单
├── src/ # 核心源码
│ ├── pdf2png.py # PDF 解析与图像预处理
│ ├── ppt_combiner.py # PPT 幻灯片合并逻辑
│ └── utils/ # 通用工具集
│ ├── screenshot_automation.py # 模拟操作与截图自动化
│ ├── image_viewer.py # OpenCV 图像全屏渲染
│ └── image_inpainter.py # 图像修复与去水印算法
├── examples/ # 示例 PDF 存放处
└── workspace/ # 运行时的临时文件与输出结果
⚠️ 注意事项与常见问题
1. 转换失败或卡住?
- 窗口焦点:运行期间请勿操作鼠标键盘,以免干扰自动化流程。
- 显示比例:如果图片超出屏幕导致无法圈选,请尝试减小
-s参数(如-s 0.6)。 - 网络/性能:如果 PPT 生成较慢,请增加
--timeout时间。
2. 找不到生成的 PPT?
- 本工具默认从系统的 下载 (Downloads) 文件夹抓取微软电脑管家生成的临时文件。请确保下载路径未被重定向。
3. 智能圈选没有“转换为PPT”选项?
- 请确保微软电脑管家已更新到最新版本。
- 该功能可能在某些地区或版本中处于灰度测试,请检查设置中的“预览体验计划”。
📄 开源协议
本项目基于 MIT License 开源。
🤝 贡献与反馈
- 提交 Issues 反馈 Bug 或建议。
- 欢迎提交 Pull Request 改进代码。
Made with ❤️ for better productivity
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file notebooklm2ppt-0.2.0.tar.gz.
File metadata
- Download URL: notebooklm2ppt-0.2.0.tar.gz
- Upload date:
- Size: 1.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7d5e6bc736f71938dae56144d8472384e729e9c56b406ffced352f286bde6c2
|
|
| MD5 |
829aeaa7f8676dbfbbcb6c334dda4a1e
|
|
| BLAKE2b-256 |
c74abc2b04fa575beff07d587539104179811a9fe203b4218eebb8fedcae8d2f
|
File details
Details for the file notebooklm2ppt-0.2.0-py3-none-any.whl.
File metadata
- Download URL: notebooklm2ppt-0.2.0-py3-none-any.whl
- Upload date:
- Size: 21.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b929104a32fd8ce31ee60244dca5558503aedb66ee582487faf1914ef66f1287
|
|
| MD5 |
7a34fccfe6e6acb7c29603b220b98271
|
|
| BLAKE2b-256 |
df31a24294392d0ca7b654df9e6ec278454cf8ad7659b46db839af2bc7f43515
|