Metadata-Version: 2.1
Name: pdf2ppt-converter
Version: 1.0.0
Summary: 一个简单易用的 Python 库，将 PDF 文件转换为 PowerPoint 演示文稿
Home-page: https://github.com/yourusername/pdf2ppt
Author: Your Name
Author-email: Your Name <your.email@example.com>
License: MIT
Project-URL: Homepage, https://github.com/yourusername/pdf2ppt
Project-URL: Documentation, https://github.com/yourusername/pdf2ppt#readme
Project-URL: Repository, https://github.com/yourusername/pdf2ppt.git
Project-URL: Issues, https://github.com/yourusername/pdf2ppt/issues
Keywords: pdf,powerpoint,ppt,converter,presentation
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Topic :: Office/Business :: Office Suites
Classifier: Topic :: Multimedia :: Graphics :: Graphics Conversion
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pdf2image>=1.16.0
Requires-Dist: python-pptx>=0.6.21
Requires-Dist: Pillow>=9.0.0
Requires-Dist: numpy>=1.20.0

# pdf2ppt

[![Python Version](https://img.shields.io/badge/python-3.7+-blue.svg)](https://www.python.org/downloads/)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)

一个简单易用的 Python 库，将 PDF 文件的每一页转换为图片并保存到 PowerPoint 演示文稿中。

## ✨ 特性

- 🚀 **一键转换** - 一行代码完成 PDF 到 PPT 的转换
- 📐 **自动适配** - 自动检测 PDF 比例并适配 PPT 尺寸
- 🎨 **高清质量** - 支持自定义 DPI，最高可达 600
- 🔄 **批量处理** - 一次转换多个 PDF 文件
- ✂️ **智能裁剪** - 可选的白边自动裁剪功能
- 💻 **跨平台** - 支持 Windows、macOS、Linux

## 📦 安装

### 从源码安装（推荐）

```bash
# 克隆或下载此仓库
cd pdf2ppt_package

# 安装到本地（开发模式）
pip install -e .

# 或直接安装
pip install .
```

### 依赖要求

**Windows 用户需要额外安装 poppler:**
1. 下载: https://github.com/oschwartz10612/poppler-windows/releases
2. 解压到某个目录（如 `C:\poppler`）
3. 添加 `C:\poppler\Library\bin` 到系统环境变量 PATH

**macOS 用户:**
```bash
brew install poppler
```

**Linux 用户:**
```bash
# Ubuntu/Debian
sudo apt-get install poppler-utils

# Fedora/CentOS
sudo yum install poppler-utils
```

## 🚀 快速开始

### 基本用法

```python
from pdf2ppt import pdf_to_ppt

# 最简单的用法：转换 PDF 为 PPT
pdf_to_ppt("演示.pdf")
# 输出: 演示.pptx

# 指定输出文件名和分辨率
pdf_to_ppt("演示.pdf", "我的PPT.pptx", dpi=300)
```

### 高级用法

```python
from pdf2ppt import PDF2PPT

# 创建转换器
converter = PDF2PPT("演示.pdf", dpi=300, crop_whitespace=True)

# 转换 PDF 为图片
images = converter.convert_pdf_to_images()
print(f"成功转换 {len(images)} 页")

# 创建 PPT（自动适配比例）
converter.create_ppt()

# 或手动指定 16:9 比例
converter.create_ppt(width=10, height=5.625)
```

### 批量转换

```python
from pdf2ppt import batch_convert

# 批量转换多个 PDF
batch_convert(["文档1.pdf", "文档2.pdf", "文档3.pdf"], dpi=300)
```

### 命令行使用

安装后，可以直接在命令行使用：

```bash
# 基本用法
pdf2ppt 演示.pdf

# 指定输出文件
pdf2ppt 演示.pdf 输出.pptx

# 指定分辨率
pdf2ppt 演示.pdf 输出.pptx 200
```

## 📖 API 文档

### `pdf_to_ppt(pdf_path, output_ppt=None, dpi=300, crop_whitespace=True)`

便捷函数：一键将 PDF 转换为 PPT

**参数:**
- `pdf_path` (str): PDF 文件路径
- `output_ppt` (str, 可选): 输出 PPT 路径，默认为 PDF 同名
- `dpi` (int, 可选): 图片分辨率，默认 300
- `crop_whitespace` (bool, 可选): 是否裁剪白边，默认 True

**返回:** str - 输出的 PPT 文件路径

---

### `PDF2PPT` 类

#### 初始化

```python
converter = PDF2PPT(
    pdf_path="演示.pdf",
    output_ppt="输出.pptx",  # 可选
    dpi=300,                  # 可选
    crop_whitespace=True      # 可选
)
```

#### 方法

**`convert_pdf_to_images() -> list`**
- 将 PDF 转换为图片列表
- 返回: PIL Image 对象列表

**`create_ppt(width=10, height=None, auto_fit=True) -> str`**
- 创建 PPT 并插入图片
- 参数:
  - `width` (float): PPT 宽度（英寸）
  - `height` (float): PPT 高度（英寸），None 时自动计算
  - `auto_fit` (bool): 是否自动适配比例
- 返回: 输出的 PPT 文件路径

**`convert() -> str`**
- 一键转换：PDF → PPT
- 返回: 输出的 PPT 文件路径

---

### `batch_convert(pdf_files, dpi=300, crop_whitespace=True)`

批量转换多个 PDF 文件

**参数:**
- `pdf_files` (list): PDF 文件路径列表
- `dpi` (int, 可选): 图片分辨率，默认 300
- `crop_whitespace` (bool, 可选): 是否裁剪白边，默认 True

## ⚙️ 配置建议

### DPI 设置

| DPI | 适用场景 | 文件大小 | 清晰度 |
|-----|---------|---------|--------|
| 150 | 预览/草稿 | 小 | 一般 |
| 200 | 日常使用 | 中等 | 良好 |
| **300** | **正式演示（推荐）** | 较大 | 高清 |
| 600 | 印刷质量 | 很大 | 超清 |

### PPT 尺寸预设

| 比例 | 宽度 x 高度（英寸） | 说明 |
|------|-------------------|------|
| **16:9（推荐）** | 10 x 5.625 | 标准宽屏 |
| 4:3 | 10 x 7.5 | 传统格式 |
| A4 | 8.27 x 11.69 | 打印用 |

## 💡 使用示例

### 示例 1: 快速转换

```python
from pdf2ppt import pdf_to_ppt

# 默认设置（300 DPI，自动适配比例）
pdf_to_ppt("演示.pdf")
```

### 示例 2: 自定义设置

```python
from pdf2ppt import PDF2PPT

# 创建转换器
converter = PDF2PPT(
    pdf_path="演示.pdf",
    output_ppt="高清演示.pptx",
    dpi=300,
    crop_whitespace=False  # 不裁剪白边
)

# 转换
converter.convert_pdf_to_images()
converter.create_ppt(width=10, height=5.625)  # 16:9 比例
```

### 示例 3: 批量转换不同 DPI

```python
from pdf2ppt import pdf_to_ppt

pdfs = ["doc1.pdf", "doc2.pdf", "doc3.pdf"]

for pdf in pdfs:
    # 快速预览版（低 DPI）
    pdf_to_ppt(pdf, pdf.replace(".pdf", "_预览.pptx"), dpi=150)

    # 正式版（高 DPI）
    pdf_to_ppt(pdf, pdf.replace(".pdf", "_正式.pptx"), dpi=300)
```

## 🐛 故障排除

### 问题 1: "Unable to get page count"

**原因:** 未安装 poppler 或未添加到 PATH

**解决:** 参见上方"安装"部分的 poppler 安装说明

### 问题 2: 内存不足

**原因:** DPI 过高导致图片太大

**解决:** 降低 DPI（如 150-200）

### 问题 3: 图片模糊

**原因:** DPI 过低

**解决:** 提高 DPI（推荐 300）

## 📝 开发

### 克隆项目

```bash
git clone https://github.com/yourusername/pdf2ppt.git
cd pdf2ppt
```

### 安装开发依赖

```bash
pip install -e ".[dev]"
```

### 运行测试

```bash
pytest tests/
```

## 📄 许可证

MIT License

## 🤝 贡献

欢迎提交 Issue 和 Pull Request！

## 📮 联系方式

- 作者: Your Name
- Email: your.email@example.com
- GitHub: https://github.com/yourusername/pdf2ppt

## 🙏 致谢

本项目基于以下优秀的开源库:
- [pdf2image](https://github.com/Belval/pdf2image) - PDF 到图片转换
- [python-pptx](https://github.com/scanny/python-pptx) - PowerPoint 生成
- [Pillow](https://python-pillow.org/) - 图片处理
- [NumPy](https://numpy.org/) - 数值计算
