内容
<h1 align="center">
<img src="resources/app_icon_readme.png" width="64" align="center" />
PDFeverything
</h1>
<p align="center">
<b>🪄 PDF 万能工具箱</b><br>
<sub>把 PDF、Word、PPT、Excel、图片、文本文件统统丢进来 ——<br>一键合成一个整整齐齐的 PDF。就这么简单。<br>内置<b>高性能 PDF 阅读器</b>,矢量级渲染画质。</sub>
</p>
<p align="center">
<a href="https://github.com/Lezheng2333/PDFeverything/releases"><img src="https://img.shields.io/badge/platform-macOS%20%7C%20Windows-blue?style=flat-square" /></a>
<a href="https://github.com/Lezheng2333/PDFeverything/releases/latest"><img src="https://img.shields.io/badge/version-v1.3.17-007aff?style=flat-square" /></a>
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green?style=flat-square" /></a>
</p>
---
## ✨ 为什么选择 PDFeverything?
你在工作中一定遇到过这种情况:一个 Word 报告、一个 PDF 扫描件、一些白板照片、一个 Excel 图表…… 现在有人要求你 "*把它们合并成一个 PDF,截止时间为下午 5 点*"。 😤
**PDFeverything 就是为这种时刻而设计的。**
把所有文件拖进来 — 任意组合的 PDF、Word 文档、PowerPoint 演示文稿、Excel 电子表格、PNG 图片、JPEG 图片、文本文件 — 然后合并成 **一个统一的 PDF**,按你决定的顺序排列,并显示进度。
| 平台 | 下载 |
|---|---|
| 🍎 macOS (Apple Silicon) | [`PDFeverything_macOS.zip`](https://github.com/Lezheng2333/PDFeverything/releases/latest) |
| 🪟 Windows 10/11 (64-bit) | [`PDFeverything.exe`](https://github.com/Lezheng2333/PDFeverything/releases/latest) |
> 🔗 [**最新版本 →**](https://github.com/Lezheng2333/PDFeverything/releases/latest)
## 🆕 v1.3.17 新增功能
- 📖 **内置 PDF 阅读器** — 滚动和网格模式,两阶段缩放,触控板捏合缩放
- 🎨 **矢量级渲染** — 精确分辨率渲染,MuPDF 原生 8 位子像素抗锯齿(媲美 Acrobat/WPS)
- 🖥️ **全 HiDPI/Retina 支持** — 原生物理像素渲染,1:1 像素映射,零模糊
- ⚡ **即时缩放** — Pass 1 <5ms 像素缩放 + Pass 2 40ms 锐利渲染,精确到缩放倍数和 DPR
---
## 🎯 核心功能:混合文件合并
```
📄 报告.docx (2 页)
📊 图表.xlsx (1 页)
🖼️ 照片.jpg (1 页)
📄 附录.pdf (5 页)
🪄 一键合并 🪄
↓
┌─────────────────────┐
│ 统一输出.pdf │
│ 9 页,按顺序合并 │
└─────────────────────┘
```
每个文件都经过自己的转换器处理(macOS 上的 AppleScript → Office,Windows 上的纯 Python 备用方案),然后所有文件合并成一个。 如果一个文件转换失败,其他文件仍会继续转换 — 您将获得一份总结报告,说明哪些文件转换成功,哪些文件转换失败。
## 🔧 PDFeverything 可以做什么
| 操作 | 说明 |
|---|---|
| 🔀 **混合合并** | PDF + Word + PPT + Excel + 图片 + 文本 → 一个 PDF |
| 🔗 **PDF 合并** | 合并多个 PDF,任意顺序 |
| ✂️ **PDF 拆分** | 按页码、每 N 页或自定义范围拆分 |
| 🖼️ **图片 → PDF** | 将一批图片转换为一个 PDF |
| 📝 **Word → PDF** | 转换 `.docx` / `.doc` 文件为 PDF |
| 📊 **PPT / Excel → PDF** | 转换 `.pptx` 和 `.xlsx` 文件为 PDF |
| 📝 **PDF → Word** | 将 PDF 转换为可编辑的 `.docx` |
| 📊 **PDF → PowerPoint** | 将 PDF 页面转换为 `.pptx` 幻灯片 |
| 📈 **PDF → Excel** | 从 PDF 中提取表格到 `.xlsx` |
| 📄 **PDF → 图片** | 将每个 PDF 页面导出为 PNG |
| 📤 **提取文本** | 从 PDF 中提取所有文本 |
| 🖼️ **提取图片** | 从 PDF 中提取嵌入的图片 |
| 🗜️ **压缩** | 缩小 PDF 文件大小(无损 / 中度 / 激进) |
| 💧 **添加水印** | 在每页上添加文本或 PDF 叠加层 |
| 🔒 **加密** | 对 PDF 设置打开密码 |
| 🔓 **解密** | 移除密码保护 |
| 🔄 **旋转** | 将页面旋转 90° / 180° / 270° |
| ℹ️ **信息** | 检查页数、元数据、加密状态 |
## 📥 支持的输入文件
| 类别 | 扩展名 |
|---|---|
| 📄 PDF | `.pdf` |
| 🖼️ 图片 | `.png` `.jpg` `.jpeg` `.gif` `.bmp` `.tiff` `.webp` |
| 📝 Word | `.docx` `.doc` `.rtf` |
| 📊 PowerPoint | `.pptx` `.ppt` |
| 📈 Excel | `.xlsx` `.xls` `.csv` |
| 📃 文本和代码 | `.txt` `.md` `.json` `.xml` `.html` `.py` `.yml` … |
## 🖥️ 用户界面
```
┌──────────────────────────────────────────────┐
│ 📄 doc.pdf [🔼] [🔽] [✖] │
│ 📊 data.xlsx [🔼] [🔽] [✖] │
│ 🖼️ photo.jpg [🔼] [🔽] [✖] │
│ 📝 report.docx [🔼] [🔽] [✖] │
│ │
│ ── 拖放文件到此处 ── │
│ │
│ [🔀 合并为统一 PDF] [✂️ 拆分...] │
│ [🗜️ 压缩...] [💧 添加水印...] │
│ [🔒 加密...] [🔄 旋转...] │
│ │
│ ████████████░░░░░░ 78% │
│ 转换中: report.docx (3/5)... │
└──────────────────────────────────────────────┘
```
- 🖱️ 从 Finder / 资源管理器 **拖放** 文件
- 🔄 使用箭头按钮或在列表中拖动 **重新排序**
- ⚡ **多线程** — 永不冻结,始终显示进度
- 🧠 **智能按钮** — 界面根据文件列表内容自适应
- 🌐 **双语界面** — 在设置中切换中文和英文(设置 > 语言)
## 🤖 AI 代理集成(MCP 服务器)
PDFeverything 内置了 **Model Context Protocol (MCP)** 服务器。 任何 AI 代理(Claude Desktop、Claude Code、Cursor 等)都可以自动发现所有 16 个 PDF 工具并直接调用它们 — **无需 Python,无需安装,只需应用程序文件**。
### 工作原理
同一个 `.exe` / `.app` 二进制文件支持三种模式:
| 模式 | macOS | Windows |
|---|---|---|
| 🖥️ **GUI** | 双击 `.app` | 双击 `.exe` |
| ⌨️ **命令行** | ``/path/to/PDFeverything.app/Contents/MacOS/PDFeverything merge -i a.pdf -o out.pdf`` | `PDFeverything.exe merge -i a.pdf b.pdf -o out.pdf` |
| 🔌 **MCP** | ``/path/to/PDFeverything.app/Contents/MacOS/PDFeverything --mcp`` | `PDFeverything.exe --mcp` |
### 配置 — Claude Desktop
在 `~/.claude/claude_desktop_config.json` 中添加:
```json
{
"mcpServers": {
"pdfeverything": {
"command": "/Applications/PDFeverything.app/Contents/MacOS/PDFeverything",
"args": ["--mcp"]
}
}
}
```
**Windows:**
```json
{
"mcpServers": {
"pdfeverything": {
"command": "C:\\Program Files\\PDFeverything\\PDFeverything.exe",
"args": ["--mcp"]
}
}
}
```
### 配置 — Claude Code
在项目下的 `.claude/settings.json` 中添加:
```json
{
"mcpServers": {
"pdfeverything": {
"type": "stdio",
"command": "/Applications/PDFeverything.app/Contents/MacOS/PDFeverything",
"args": ["--mcp"]
}
}
}
```
### AI 代理看到的工具(16 个)
连接后,代理会自动发现这些工具 — 无需手动指令:
| 工具 | 说明 |
|---|---|
| `pdf_merge` | 合并多个 PDF |
| `pdf_split` | 按页或范围拆分 PDF |
| `pdf_info` | 获取元数据(页数、大小、作者等) |
| `pdf_extract_text` | 从 PDF 中提取所有文本 |
| `pdf_extract_images` | 提取嵌入的图片 |
| `pdf_to_images` | 将 PDF 页面转换为 PNG |
| `images_to_pdf` | 图片 → 单个 PDF |
| `pdf_to_word` | 将 PDF 转换为 Word (.docx) |
| `pdf_to_ppt` | 将 PDF 转换为 PowerPoint (.pptx) |
| `pdf_to_excel` | 从 PDF 中提取表格到 Excel (.xlsx) |
| `pdf_compress` | 减小 PDF 文件大小 |
| `pdf_watermark` | 添加文本水印 |
| `pdf_encrypt` | 设置打开密码 |
| `pdf_decrypt` | 移除密码 |
| `pdf_rotate` | 将页面旋转 90/180/270° |
| `pdf_mixed_merge` | 🔥 混合文件 → 统一 PDF |
### 直接命令行模式(无需 MCP)
AI 代理也可以直接调用二进制文件:
```bash
# macOS
/Applications/PDFeverything.app/Contents/MacOS/PDFeverything merge -i a.pdf b.pdf -o out.pdf
/Applications/PDFeverything.app/Contents/MacOS/PDFeverything info -i doc.pdf
/Applications/PDFeverything.app/Contents/MacOS/PDFeverything -h
# Windows
PDFeverything.exe merge -i a.pdf b.pdf -o out.pdf
PDFeverything.exe info -i doc.pdf
PDFeverything.exe -h
```
> 💡 **`.app` 和 `.exe` 是同一个二进制文件。** 给参数 → 命令行模式。给 `--mcp` → MCP 服务器。不给参数 → GUI。一个文件, 三种用法。
## 🚀 开发者快速入门
```bash
# 1. 安装依赖
pip install PyQt6 PyMuPDF pypdf pikepdf pillow python-docx python-pptx openpyxl
# 2. 启动 GUI
python main.py
# 3. 或使用命令行
python pdf_tool.py merge -i a.pdf b.pdf -o merged.pdf
python pdf_tool.py info -i document.pdf
# 4. 或启动 MCP 服务器
python mcp/server.py
```
### 从源码构建
**Windows**(单文件便携版):
```bash
pyinstaller build_windows.spec --noconfirm --clean
# → dist/PDFeverything.exe
```
**macOS**(应用包):
```bash
pyinstaller PDFeverything.spec --noconfirm --clean
# → dist/PDFeverything.app
```
## 🧱 技术栈
| 层 | 技术 |
|---|---|
| 🖼️ 界面 | **PyQt6** — macOS / Windows 原生体验 |
| 🧠 PDF 引擎 | **PyMuPDF** + **pypdf** + **pikepdf** |
| 📝 Office 转换 | **AppleScript** (macOS) / **COM** (Windows) / **python-docx** + **python-pptx** + **openpyxl** (备用) |
| 📦 打包 | **PyInstaller** (Windows 单文件 / macOS 应用包) |
## 📄 许可证
MIT — 随意使用。[LICENSE](resources/LICENSE.txt)
---
<h2 align="center">🇨🇳 中文介绍</h2>
<p align="center">
<b>🪄 PDF 万能工具箱</b><br>
<sub>把 PDF、Word、PPT、Excel、图片、文本文件统统丢进来 ——<br>一键合成一个整整齐齐的 PDF。就这么简单。<br>内置<b>高性能 PDF 阅读器</b>,矢量级渲染画质。</sub>
</p>