在日常办公与开发中,PDF 是最常见的文件格式之一。
无论是合同、报告、论文还是发票,我们几乎每天都要与 PDF 打交道。
但很多人不知道的是,除了用 Adobe Acrobat 或在线网站,还有一款强大、轻量且免费的命令行工具——qpdf,能让你高效处理各种 PDF 操作。
什么是 qpdf?
qpdf 是一个开源的 PDF 工具包,由 Jay Berkenbilt 开发,支持在命令行环境下对 PDF 文件进行结构化操作。
它并不是一个 PDF 渲染器(即不能直接查看或编辑内容),而是一个“PDF 工程师的工具箱”,专注于:
- PDF 的结构转换与重组
- 页面提取、合并与重排
- 加密与解密
- 压缩优化与文件修复
一句话总结:
qpdf 让你可以像操作积木一样“重组”PDF。
qpdf 的主要功能
1. 拆分与合并 PDF
想把一份报告拆分成几页?或把多份文件合成一份?qpdf 一行命令搞定。
# 合并多个 PDFqpdf --empty --pages file1.pdf file2.pdf file3.pdf -- output.pdf# 拆分 PDF(提取第2-5页)qpdf input.pdf --pages . 2-5 -- output.pdf✅ 小技巧:--empty 表示创建一个新的空 PDF,再把指定页插入进去。
2. PDF 加密与解密
qpdf 支持多种加密算法,可以设置打开密码或编辑限制。
# 设置密码加密qpdf --encrypt userpass ownerpass 128 -- input.pdf output.pdf# 解密 PDF(需输入密码)qpdf --password=yourpassword --decrypt input.pdf output.pdf提示:
userpass:用户打开文件所需密码ownerpass:拥有者密码(可修改权限)
3. 优化与修复 PDF
有时 PDF 文件过大或损坏,qpdf 也能帮你解决。
# 优化 PDF 体积qpdf --linearize input.pdf output.pdf# 修复损坏的 PDFqpdf --repair input.pdf fixed.pdf
--linearize(又称“Fast Web View”)可使 PDF 在网页中快速预览时更流畅。
4. 重新排列或旋转页面
# 旋转第3页90度qpdf input.pdf --pages . 1-2 --rotate=+90:3 -- output.pdfqpdf 支持精准控制页面顺序、方向和范围,非常适合处理批量文件或打印排版。
5. 提取或替换页面内容
qpdf 还可以用于页面级别的精细操作:
# 提取第一页与最后一页qpdf input.pdf --pages . 1,z -- output.pdf其中 z 表示最后一页,非常灵活。
开发者友好:API 与脚本化
除了命令行工具,qpdf 还提供 C++ API 与 Python绑定(pyqpdf)。
这意味着你可以在代码中批量处理 PDF,比如自动拆分合同、批量加密报告、或分析文件结构。
Python 示例:
import qpdfpdf = qpdf.Pdf("input.pdf")pdf.pages[0].rotate(90)pdf.save("rotated.pdf")使用场景举例
| 场景 | 解决方案 |
|---|---|
| 合并多份发票 | qpdf --empty --pages *.pdf -- output.pdf |
| 删除 PDF 尾页 | qpdf input.pdf --pages . 1-z-1 -- output.pdf |
| 给报告加密 | qpdf --encrypt 1234 5678 128 -- report.pdf secure.pdf |
| 修复打不开的 PDF | qpdf --repair broken.pdf fixed.pdf |
| 压缩网页展示版 PDF | qpdf --linearize report.pdf web.pdf |
安装方法
Windows
可从官网下载安装包: https://qpdf.sourceforge.io
或使用 Chocolatey:
choco install qpdfmacOS
brew install qpdfLinux
大多数发行版自带:
sudo apt install qpdf总结
| 优点 | 说明 |
|---|---|
| 强大 | 支持几乎所有常见 PDF 操作 |
| 高效 | 命令行批处理速度极快 |
| 灵活 | 支持脚本与程序化接口 |
| 免费 | 开源软件,无需付费 |
对 PDF 处理有专业需求的人,qpdf 是一款 值得收藏的瑞士军刀级工具。
写在最后 qpdf 看似冷门,但一旦熟悉,你会发现它在批量文件处理、自动化脚本、开发集成中极具价值。
如果你厌倦了打开网页一个个操作,不妨试试这款“低调却高能”的工具。
✨ 喜欢这样的工具分享?点个「在看」或分享给朋友,一起解锁更多高效工作技巧!

