# PDF to Image to PDF Converter (pdf2img2pdf)

这是一个轻量级的 Python 工具，用于将 PDF 文件转换为图像，然后再将这些图像合并回 PDF 文件。适用于需要处理 PDF 内容或修复损坏 PDF 的场景。

### 功能特性

- 支持将 PDF 文件逐页转换为 PNG 图像。
- 将多张图像合并为一个新的 PDF 文件。
- 跨平台支持（Windows / Linux / macOS）。
- 自动检测依赖项（如 Poppler）并提供清晰的安装指引。
- 支持 PyInstaller 打包后的可执行文件运行。

### 安装依赖

1. Python 依赖库
   确保已安装以下 Python 库

```bash
pip install pdf2image img2pdf
```

2. Poppler（必需）
   pdf2image 依赖于 poppler 工具集中的 pdftoppm 命令

##### Windows 用户：

- 下载预编译版本：[Poppler for Windows](https://github.com/oschwartz10612/poppler-windows/releases/)
- 解压后将 poppler-x.x.x\Library\bin 添加到系统 PATH 环境变量中。
- 或者在代码中显式指定路径（见下方示例）。

##### Linux 用户：

使用包管理器安装：

```bash
# Ubuntu/Debian
sudo apt-get install poppler-utils
# CentOS/RHEL
sudo yum install poppler-utils
```

##### macOS 用户：

使用 Homebrew 安装：

```bash
brew install poppler
```

### 使用方法

##### 命令行调用

```bash
python pdf2img2pdf.py <input.pdf> <output.pdf>
```

##### 作为模块调用

```bash
from pdf2img2pdf import convert
# 转换 PDF 文件
convert("example_input.pdf", "example_output.pdf")
```

### 注意事项

- Poppler 必须安装：

  如果未安装 poppler，程序会自动检测并提示安装方法。
  确保 pdftoppm 或 pdfinfo 命令可在系统中运行。

- 权限问题：

  确保脚本对输入文件有读取权限，对输出目录有写入权限。

- 临时文件：

  转换过程中会在 tmp/imgs 目录下生成临时图像文件，结束后会自动清理。

- PyInstaller 支持：

  此工具支持打包为独立可执行文件，打包时需确保资源文件路径正确

### 目录结构

```bash
pdf2img2pdf/
├── pdf2img2pdf.py     # 主程序文件
├── tmp/               # 临时文件目录（运行时自动生成）
│   └── imgs/          # 存放转换过程中的图像文件
└── README.md          # 本文档
```
