Metadata-Version: 2.4
Name: notebooklm2ppt
Version: 0.5.1
Summary: 将 PDF 转换为可编辑 PowerPoint 演示文稿的工具
Project-URL: Homepage, https://github.com/elliottzheng/NotebookLM2PPT
Project-URL: Repository, https://github.com/elliottzheng/NotebookLM2PPT.git
Project-URL: Issues, https://github.com/elliottzheng/NotebookLM2PPT/issues
Author-email: Elliott Zheng <elliott.zheng@foxmail.com>
License: MIT
Requires-Python: >=3.8
Requires-Dist: numpy
Requires-Dist: opencv-python
Requires-Dist: pillow
Requires-Dist: pyinpaint
Requires-Dist: pymupdf
Requires-Dist: python-pptx
Requires-Dist: pywin32; sys_platform == 'win32'
Requires-Dist: pywinauto; sys_platform == 'win32'
Requires-Dist: requests
Requires-Dist: scikit-image
Requires-Dist: spire-presentation
Requires-Dist: windnd; sys_platform == 'win32'
Description-Content-Type: text/markdown

# 🚀 NotebookLM2PPT - 将 PDF 转换为可编辑 PowerPoint 的自动化工具

## 🎉 最新更新

### 🆕 v0.5.0 - 基于MinerU的PPT后处理优化（重大实验性更新）

我们很高兴宣布 NotebookLM2PPT v0.5.0 的发布！本次更新集成了 [MinerU](https://mineru.net/) 文档解析能力，为用户提供更强大的 PDF 转 PPT 转换体验。

**重要说明：MinerU 是一个后处理功能**
- 程序首先使用微软电脑管家的"智能圈选"功能将 PDF 转换为可编辑的 PPT（基础转换）
- 如果提供了 MinerU JSON 文件，程序会在基础转换完成后，自动对生成的 PPT 进行深度优化（后处理）
- MinerU 优化是可选的，不影响基础转换功能的使用

**后处理优化内容：**
- ✨ **智能文本框筛选**：基于 IOU 算法自动识别并保留相关文本框，删除冗余文本框
- 🎨 **字体统一处理**：自动将所有文本框字体统一为"微软雅黑"
- 🖼️ **高质量图片替换**：从 MinerU JSON 提取原始高清图片，替换截图图片
- 🎭 **智能背景处理**：根据内容特征智能处理背景，实现最佳视觉效果

**使用方式：**
1. 在 [MinerU 官网](https://mineru.net/) 上传 PDF 并解析
2. 下载生成的 JSON 文件
3. 在程序 GUI 中选择 PDF 和对应的 JSON 文件
4. 开始转换，程序会先执行基础转换，完成后自动执行 MinerU 后处理优化

详细使用说明请查看下方 [🆕 MinerU 后处理优化功能](#-mineru-后处理优化功能) 章节。

---

## 📝 项目简介

**NotebookLM2PPT** 是一款强大的自动化工具，旨在将不可编辑的 PDF 文档（特别是 [NotebookLM](https://notebooklm.google.com/) 生成的演示文稿）转换为**完全可编辑**的 PowerPoint 演示文稿。

### 💡 核心价值

- **打破限制**：将 NotebookLM 生成的精美但不可编辑的 PDF 转化为可二次创作的 PPT。
- **智能去水印**：内置针对 NotebookLM 的智能水印去除算法。
- **全自动化**：利用微软电脑管家的"智能圈选"功能，自动完成截图、识别、转换和合并的全流程。
- **通用性**：不仅限于 NotebookLM，适用于任何需要将 PDF 转换为可编辑 PPT 的场景。
- **🆕 MinerU 后处理优化**：在基础转换完成后，可选地使用 MinerU 文档解析能力对生成的 PPT 进行深度优化，大幅提升排版质量、图片清晰度和文本准确性。

---

## ✨ 主要功能

- 📄 **高质量转换**：确保 PDF 到图片的无损转换，支持自定义 DPI 参数。
- 🖼️ **智能修复**：自动识别并抹除 NotebookLM 的特定水印，保持图像质量。
- 🤖 **自动化流程**：模拟快捷键和鼠标点击，实现无人值守操作。
- 🔄 **无缝合并**：将零散的幻灯片完美整合为一个完整的演示文稿。
- ⚙️ **高度可定制**：支持 DPI、延迟、显示比例等多种参数微调。
- 🆕 **MinerU 后处理优化**（可选）：
  - 在基础转换完成后，使用 MinerU JSON 对生成的 PPT 进行优化
  - **智能文本框筛选**：基于 IOU 算法，自动识别并保留与 PDF 内容相关的文本框，删除冗余文本框
  - **字体统一**：将所有文本框字体统一为"微软雅黑"，提升演示文稿的专业性
  - **高质量图片替换**：从 MinerU JSON 中提取原始高清图片，替换基础转换中的截图图片，确保图像清晰度
  - **智能背景处理**：根据内容特征智能处理背景，实现最佳视觉效果

> 💡 **想了解更多技术实现细节？** 请查看 [实现细节文档](docs/implementation-details.md)

---

## 🚀 快速开始

### 1. 系统要求

- **操作系统**: Windows 10/11 (必须，因为依赖微软电脑管家)
- **Python**: 3.8 或更高版本
- **软件依赖**:
  - **Microsoft PowerPoint**: 用于生成和合并幻灯片。
  - **[微软电脑管家](https://pcmanager.microsoft.com/)**: 必须安装并确保版本 $\ge$ **3.17.50.0**。

### 2. 配置微软电脑管家

1. 打开微软电脑管家 -> **工具箱**。
2. 找到 **智能圈选**，确保其已开启。
3. 默认快捷键应为 `Ctrl + Shift + A`。如果修改了，请同步修改代码中的配置。
4. **测试**：手动按下快捷键，确保能看到圈选界面并出现“转换为PPT”选项。

### 3. 安装

#### 方式 A：下载预编译版本（推荐）
直接前往 [Releases](https://github.com/elliottzheng/NotebookLM2PPT/releases) 页面下载最新的 `.exe` 执行文件。无需安装 Python 环境，开箱即用。

#### 方式 B：通过 pip 安装
如果你已经安装了 Python，可以直接通过 pip 安装：

```bash
pip install notebooklm2ppt -U
```

#### 方式 C：从源码安装
```bash
pip install git+https://github.com/elliottzheng/NotebookLM2PPT.git
```

---

## 📖 使用指南

```bash
notebooklm2ppt
```
或者
```bash
python main.py
```

这将启动一个简单的图形界面，你可以通过它选择文件、设置参数并查看转换进度。

你可以在任何目录下运行该命令，程序会在当前目录下创建一个 `workspace` 文件夹存放中间文件和最终输出的 PPT。

---

## 🆕 MinerU 后处理优化功能

### 什么是 MinerU？

[MinerU](https://mineru.net/) 是一个强大的在线文档解析工具，能够智能识别 PDF 文档的结构、文本、图片和排版信息，并生成包含详细元数据的 JSON 文件。

### MinerU 在本工具中的作用

**重要理解：MinerU 是一个后处理优化功能，不是转换的核心功能**

本工具的转换流程分为两个阶段：

1. **基础转换阶段**（必须）
   - 使用微软电脑管家的"智能圈选"功能
   - 将 PDF 页面转换为图片
   - 通过 OCR 识别生成可编辑的 PPT
   - 这个阶段不依赖 MinerU，可以独立完成

2. **MinerU 后处理优化阶段**（可选）
   - 在基础转换完成后，如果提供了 MinerU JSON 文件
   - 程序会读取 JSON 中的结构化信息
   - 对基础转换生成的 PPT 进行深度优化
   - 这个阶段依赖 MinerU JSON 文件，是可选的增强功能

### 为什么使用 MinerU 后处理优化？

虽然本工具的基础转换功能已经能够将 PDF 转换为可编辑的 PPT，但在以下场景中，使用 MinerU 后处理优化可以显著提升转换质量：

- **复杂排版文档**：包含多栏、表格、图文混排的复杂文档，基础转换可能产生大量冗余文本框
- **高质量图片需求**：基础转换使用截图，图片清晰度受限于 DPI，后处理可替换为原始高清图片
- **专业演示文稿**：对字体、排版、背景有较高要求的商业演示，需要统一的字体和优化的背景
- **批量转换**：需要保证多份文档风格统一的情况，后处理可确保一致性

效果如下图所示，左边为无后处理，右边为有后处理，有很显著的改善。

![](assets/compare.png)
![](assets/compare2.png)

### 如何使用 MinerU 后处理优化？

#### 步骤 1：在 MinerU 网站解析 PDF

1. 访问 [MinerU 官网](https://mineru.net/)
2. 上传你的 PDF 文件
3. 等待解析完成（通常需要几分钟，取决于文档大小）
4. 下载生成的 JSON 文件

#### 步骤 2：在程序中使用 JSON 文件

在 GUI 界面的"文件设置"区域：
- 选择要转换的 PDF 文件
- 在"输入PDF对应的MinerU JSON (可选)"字段中选择刚才下载的 JSON 文件
- 点击"开始转换"按钮

**转换流程说明：**
1. 程序首先执行基础转换：使用微软电脑管家的"智能圈选"功能将 PDF 转换为可编辑的 PPT
2. 如果提供了 MinerU JSON 文件，程序会在基础转换完成后自动执行后处理优化
3. 后处理优化包括：智能文本框筛选、字体统一、高质量图片替换、智能背景处理
4. 最终输出经过优化的高质量 PPT 文件

**注意：** 如果不提供 JSON 文件，程序只会执行基础转换，跳过后处理优化阶段。

### 优化效果对比

| 特性 | 基础转换 | MinerU 优化 |
|------|---------|------------|
| 文本框准确性 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 图片清晰度 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 字体统一性 | ⭐⭐ | ⭐⭐⭐⭐⭐ |
| 背景处理 | ⭐⭐⭐ | ⭐⭐⭐⭐ |
| 整体排版质量 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |

### 常见问题

**Q: MinerU JSON 文件是必需的吗？**
A: 不是必需的。如果不提供 JSON 文件，程序会使用基础转换功能，仍然能够生成可编辑的 PPT。

**Q: MinerU 是免费服务吗？**
A: MinerU 目前看来是免费服务，只需要注册即可免费试用。

**Q: 如果 JSON 文件与 PDF 不匹配会怎样？**
A: 程序会尝试使用 JSON 信息，但可能导致优化效果不正确。请确保 JSON 文件与要转换的 PDF 完全对应。

**Q: 想了解更多技术实现细节？**
A: 请查看 [实现细节文档](docs/implementation-details.md) 和 [MinerU 技术实现细节文档](docs/mineru-technical-details.md)。

---

## ⚠️ 注意事项与常见问题

### 1. 按钮偏移参数的重要性（核心功能）

**⚠️ 这是最关键的参数！**

本工具通过模拟鼠标点击微软电脑管家的"转换为PPT"按钮来实现自动转换，按钮偏移参数决定了程序能否准确定位并点击该按钮。

**首次使用建议**：
- 勾选"校准按钮位置"选项
- 程序会引导你手动点击按钮位置，自动保存偏移值
- 校准后的偏移值会自动保存，下次使用时无需重复校准

**如果校准失败**：
- 确保微软电脑管家已更新到最新版本
- 检查智能圈选功能是否正常工作
- 尝试手动校准按钮位置
- 清除保存的偏移值，重新进行校准

> 💡 **想了解按钮偏移参数的技术原理？** 请查看 [实现细节文档](docs/implementation-details.md#按钮偏移参数)

### 2. 转换失败或卡住？
- **窗口焦点**：运行期间请勿操作鼠标键盘，以免干扰自动化流程。
- **显示比例**：如果图片超出屏幕导致无法圈选，请尝试减小显示比例参数。
- **网络/性能**：如果 PPT 生成较慢，请增加超时时间。

### 3. 找不到生成的 PPT？
- 本工具默认从系统的 **下载 (Downloads)** 文件夹抓取微软电脑管家生成的临时文件。请确保下载路径未被重定向。

### 4. 智能圈选没有"转换为PPT"选项？
- 请确保微软电脑管家已更新到最新版本。
- 该功能可能在某些地区或版本中处于灰度测试，请检查设置中的"预览体验计划"。

---

## 📄 开源协议

本项目基于 [MIT License](LICENSE) 开源。

## 🤝 贡献与反馈

- 提交 [Issues](https://github.com/elliottzheng/NotebookLM2PPT/issues) 反馈 Bug 或建议。
- 欢迎提交 Pull Request 改进代码。

---
<p align="center">Made with ❤️ for better productivity</p>

