每天认识一个 GitHub 项目:pdfarranger 项目介绍
📌 项目概览前的引言
你是否曾经面对多个 PDF 文件,想要合并、拆分、旋转、裁剪或重新排列页面,却找不到一款简单直观的工具?PDF Arranger 正是为此而生。它是一款基于 Python 和 GTK 的轻量级桌面应用,通过交互式图形界面让你像操作卡片一样自由整理 PDF 页面。无需学习复杂的命令行工具,无需付费订阅,开源免费且跨平台(Linux/Windows/macOS),无论是日常办公、学术研究还是电子书制作,它都能大幅提升你的 PDF 处理效率。打开它,你会立刻爱上这种“所见即所得”的页面编排体验。
项目概览
| 项目信息 | 详情 |
| 项目名称 | pdfarranger |
| 项目描述 | 一个小巧的 Python-GTK 应用,帮助用户合并或拆分 PDF 文档,并通过交互式直观图形界面旋转、裁剪和重新排列页面。 |
| GitHub 地址 | https://github.com/pdfarranger/pdfarranger |
| 主要语言 | Python |
| 星标数量 | ⭐ 5778 |
| 分支数量 | 🍴 313 |
| 开源协议 | GNU General Public License v3.0 |
| 创建时间 | 2015-10-21 |
| 项目年龄 | 3950 天 |
| 最后更新 | 2026-08-14 |
| 开放问题 | 78 |
项目标签
gtk gtk3 linux pdf python3
🚀 最新发布
版本: 1.14.0
发布日期: 2026-05-23
发布标题: 1.14.0
新增/改进功能:
- • 新增“缩放适应单页”功能,可一键聚焦查看某一页(#1352)
- • 在“插入空白页”和“页面大小”对话框中增加 A0、A1、A2 纸张尺寸选项(#1358)
- • 将“纸张尺寸”选项在“插入空白页”和“页面大小”对话框中的顺序提前,方便快速选择(#1364)
- • 导出时重建 PDF 书签大纲(合并书签等)(#1372)
- • 新增“交换奇偶页”功能(#1388)
问题修复:
- • 修复保存时退出码处理异常(#1318)
- • 清理“偏好设置”对话框中的语言列表,防止异常项(#1332)
- • 补充缺失的部分国际化翻译(#1338)
- • 修复错误的“未保存”状态提示(#1341)
📎 查看全部发布
📖 项目文档预览
关于项目
PDF Arranger 是一个小型 Python-GTK 应用,帮助用户合并或拆分 PDF 文档,并通过交互式、直观的图形界面旋转、裁剪和重新排列页面。它是 pikepdf 的前端界面。
PDF Arranger 是 Konstantinos Poulios 的 PDF-Shuffler 的分支(见 Savannah 或 Sourceforge),旨在让该项目更加活跃。
更多信息请参阅 用户手册。
核心特性
特性 1:直观的图形化页面编排
通过缩略图网格展示 PDF 所有页面,支持拖拽排序、多选操作、复制粘贴页面。你可以像操作卡片一样轻松调整页面顺序,所见即所得,无需任何命令行知识。
特性 2:丰富的页面编辑能力
内置旋转(0°/90°/180°/270°)、裁剪(自定义边距)、缩放、删除、插入空白页等常用功能。支持批量操作,可同时处理多个页面,极大提升工作效率。
特性 3:强大的合并与拆分功能
支持将多个 PDF 文件合并为一个文档,也可按页面范围拆分 PDF。通过简单的拖拽或右键菜单,即可完成复杂的文档重组任务,并且全部操作都在本地完成,保护你的数据隐私。
特性 4:基于 pikepdf 的专业内核
底层使用成熟的 pikepdf 库(基于 qpdf),确保处理 PDF 时的稳定性和兼容性。支持 PDF 1.2-2.0 规范,保留书签、元数据等关键信息,并在导出时智能重建书签大纲。
特性 5:跨平台支持与多渠道分发
支持 Linux(Debian/Ubuntu/Arch/Fedora/FreeBSD 等)、Windows 和 macOS。提供 Flatpak、Snap、Windows 安装包等多种安装方式,满足不同用户的使用习惯。
演示区
| 类型 | 说明 |
| 截图 | 官方仓库提供了主界面截图,展示页面缩略图、工具栏和上下文菜单,可访问下方链接查看 |
| 在线体验 | 暂无在线 Demo,请下载安装后本地体验 |
🔗 截图地址:
https://github.com/pdfarranger/pdfarranger/raw/main/data/screenshot.png
技术栈
| 层级 | 技术 |
| 后端 | Python 3、pikepdf、img2pdf(可选)、dateutil |
| 前端 | GTK 3、GObject Introspection、Poppler-glib、libhandy |
| 构建工具 | setuptools、gettext(国际化)、GitHub Actions(CI/CD) |
| 打包分发 | Flatpak、Snap、NSIS(Windows)、Homebrew(macOS) |
架构说明:PDF Arranger 采用经典的 MVC 模式。视图层使用 GTK 3 构建图形界面,控制层响应用户操作(如拖拽、点击),模型层调用 pikepdf 对 PDF 进行底层解析和操作。所有页面渲染通过 Poppler-glib 完成,保证高质量的预览效果。国际化通过 gettext 管理多语言翻译。
⚡ 快速开始(QuickStart)
环境要求
- • 操作系统:Linux(推荐 Debian/Ubuntu、Arch、Fedora)、Windows 10/11、macOS 10.15+
- • Python 版本:Python 3.7 或更高版本(从源码安装时)
- • 依赖库:pikepdf >= 6.0(pip 自动安装)
- • 可选依赖:img2pdf(用于导入图像文件)
安装步骤
方式一:使用发行版包管理器(推荐 Linux 用户)
Debian / Ubuntu / Linux Mint:
sudo apt install pdfarranger如果仓库中没有,请使用源码安装。
Arch Linux / Manjaro:
sudo pacman -S pdfarrangerFedora:
sudo dnf install pdfarrangerFreeBSD:
sudo pkg install pdfarrangerWindows:直接前往 GitHub Releases 下载最新 .exe 安装包,双击安装即可。
macOS:使用 Homebrew 安装:
brew install --cask pdfarranger方式二:Flatpak(支持所有 Linux 发行版)
flatpak install flathub com.github.jeromerobert.pdfarranger
flatpak run com.github.jeromerobert.pdfarranger方式三:Snap
sudo snap install pdfarranger方式四:从源码安装(适用于开发者和特殊需求)
步骤 1:安装系统依赖
Debian/Ubuntu:
sudo apt-get install python3-pip python3-wheel python3-gi python3-gi-cairo \
gir1.2-gtk-3.0 gir1.2-poppler-0.18 gir1.2-handy-1 python3-setuptools \
gettext python3-dateutil python3-venvArch Linux:
sudo pacman -S poppler-glib python-pip python-gobject gtk3 python-cairo libhandyFedora:
sudo dnf install poppler-glib python3-pip python3-gobject gtk3 python3-cairo \
python3-wheel python3-pikepdf python3-img2pdf python3-dateutil libhandyFreeBSD:
sudo pkg install devel/gettext devel/py-gobject3 devel/py-pip \
graphics/poppler-glib textproc/py-pikepdf x11-toolkits/gtk30 \
x11-toolkits/libhandy步骤 2:创建虚拟环境(可选但推荐)
python3 -m venv --system-site-packages ~/pdfarranger-env步骤 3:安装 PDF Arranger
~/pdfarranger-env/bin/pip3 install --upgrade https://github.com/pdfarranger/pdfarranger/zipball/main步骤 4:创建全局符号链接(可选)
sudo ln -s ~/pdfarranger-env/bin/pdfarranger /usr/local/bin/pdfarranger步骤 5:启动程序
pdfarranger开发者模式(从 Git 仓库运行)
git clone https://github.com/pdfarranger/pdfarranger.git
cd pdfarranger
./setup.py build
python3 -m pdfarranger使用方法
基本用法
安装完成后,在终端运行 pdfarranger,或从应用程序菜单启动 PDF Arranger。界面顶部工具栏提供以下主要功能:
| 按钮 | 功能 |
| 导入 | 添加 PDF 或图像文件(支持多选) |
| 保存 | 导出当前页面布局为新的 PDF |
| 拆分 | 按选择范围拆分页面 |
| 旋转 | 将选中页面旋转 90° |
| 裁剪 | 手动调整裁切框 |
| 缩放 | 调整页面缩放比例 |
| 插入 | 插入空白页或已有文件 |
高级功能用法
- 1. 合并多个 PDF:依次点击“导入”,或直接将文件拖入窗口,所有页面会按顺序排列。按住
Ctrl或Shift多选页面,右键选择“移动到顶部/底部”或直接拖拽调整顺序,最后点击“保存”即可。 - 2. 拆分 PDF:选择要提取的页面,点击“拆分”按钮,即可将选中页面另存为独立 PDF;也可使用“提取”功能按范围批量导出。
- 3. 交换奇偶页(新功能):在 v1.14.0 中,可通过
编辑 → 交换奇偶页快速交换所有奇数和偶数页的位置,适用于印刷双面文档的顺序调整。 - 4. 书签导出与重建:v1.14.0 支持在导出时自动重建 PDF 大纲(书签)。如果源文件拥有书签,合并后导出时选择“保留书签”选项,即可保证书签层级和跳转正确。
- 5. 使用命令行参数快速打开文件:
pdfarranger file1.pdf file2.pdf启动时会自动加载这两个文件,方便与文件管理器集成。
- 6. 图像文件导入:若已安装
img2pdf,可支持的图像格式(如 PNG、JPEG)被导入后将自动转换为 PDF 页面。
📊 项目分析
热度与维护指标
| 指标 | 数值/评价 |
| 星标/分支比 | 18.46(5778 星 / 313 分支) |
| 更新活跃度 | 高(最近一次提交为 2026-08-14) |
| 社区参与度 | 高(78 个开放 issue,活跃讨论与贡献) |
| 版本发布频率 | 每年发布 1-2 个大版本,并持续提供修复版 |
推荐理由
- 1. 技术栈:使用 Python 语言开发,依赖现代 pikepdf 库,代码清晰易读,是学习 GTK 桌面应用开发的优秀范例。
- 2. 社区认可:获得 5778 个星标,并有大量发行版打包(Repology 显示 30+ 个软件源收录),证明其稳定性和实用性。
- 3. 持续维护:项目创建于 2015 年,至今保持活跃更新,最近更新日期为 2026-08-14,充分说明项目生命力旺盛。
- 4. 文档完整:提供用户手册、开发指南、测试文档以及多语言翻译指南,上手门槛极低,二次开发友好。
- 5. 实用价值高:解决了 PDF 处理中常见的合并、拆分、重排痛点,并且免费开源、无广告、无需联网操作,适合注重隐私的用户。
使用建议
- • 普通用户:直接通过系统包管理器或 Flatpak 安装,无需配置 Python 环境。
- • Python 开发者:阅读源码可深入学习
GObject信号机制、pikepdf的高级用法以及setuptools构建流程。 - • 企业/团队:可将其作为内部 PDF 批处理工具,配合脚本自动化处理页面重排、添加水印等任务。
- • 贡献者:关注项目 logo 和 issue 列表,特别是国际化翻译和 bug 修复标签,这些是对新手最友好的入门贡献点。
📝 本文档由自动化监控系统生成,数据来源于 GitHub 公开 API,生成时间:2026-08-15 12:03:11。
如需更新项目信息,请访问 GitHub 仓库。
**本文档根据pdfarranger/pdfarranger项目官方仓库内容整理,只在提供清晰的项目介绍和试用指引,所有工具的使用者应当遵守当地的法律法规,请勿用于非法用途!关注我,每天8点带你解锁一个github开源项目!
夜雨聆风