当你需要处理PDF时,第一反应是不是打开Adobe Acrobat或WPS?这些可视化工具固然直观,但面对批量处理、自动化流程或服务器环境时,它们就显得力不从心了。这时,藏在命令行里的PDF工具就会露出“真面目”——它们轻量、高效、可脚本化,能轻松完成合并、拆分、压缩等复杂操作。今天,我们就来解锁这些“PDF魔术师”,让你用几行代码搞定别人点半天鼠标的工作。
一、为什么要拥抱命令行PDF工具?
在谈具体工具前,先回答一个问题:明明有图形界面,为什么还要折腾命令行?
答案很简单:效率和自动化。
想象一下:你手里有100份客户合同PDF,需要批量加水印;或者你需要每天凌晨自动将服务器上的报表合并成一个文件;又或者你在没有图形界面的Linux服务器上处理PDF——这些场景下,图形工具要么操作繁琐,要么根本用不了。而命令行工具可以:

- 批量处理:一条命令搞定上百个文件;
- 脚本化:嵌入Shell、Python脚本,实现自动化工作流;
- 跨平台:大多数工具支持Windows、macOS、Linux;
- 轻量无广告:不需要安装庞大的软件,甚至可以直接用系统自带的工具。
二、7个必备命令行PDF工具,覆盖90%场景
下面这些工具,每一个都有自己的“独门绝技”。建议你根据需求收藏,用的时候直接“抄作业”。
1. pdftk:PDF界的“瑞士军刀”
定位:基础PDF操作的全能选手
核心功能:合并、拆分、旋转、加密、加水印、提取文本/页面
安装:
- macOS:
brew install pdftk - Ubuntu/Debian:
sudo apt install pdftk - Windows:官网下载安装包(pdftk.org)
实用场景 & 命令示例:
- 合并PDF:把
report1.pdf和report2.pdf合并成combined.pdfpdftk report1.pdf report2.pdf cat output combined.pdf - 拆分PDF:提取第1-3页和第5页,生成
selected_pages.pdfpdftk input.pdf cat 1-3 5 output selected_pages.pdf - 旋转页面:把第2页顺时针旋转90度(
180为半圈,270为逆时针)pdftk input.pdf cat 1 2east 3-end output rotated.pdf - 加密PDF:设置打开密码(
user_pw)和编辑密码(owner_pw)pdftk input.pdf output encrypted.pdf user_pw 1234 owner_pw 5678
2. Ghostscript:PDF压缩与格式转换的“幕后大佬”
定位:专业级PDF压缩、PostScript与PDF互转
核心功能:压缩PDF(减小文件体积)、PS→PDF转换、PDF→图片转换
安装:几乎所有系统自带,若没有则:
- macOS:
brew install ghostscript - Ubuntu:
sudo apt install ghostscript
实用场景 & 命令示例:
- 压缩PDF(网页级):适合分享到网页,画质损失小,体积大幅缩小
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=compressed.pdf input.pdf说明:
/screen(低分辨率,72dpi)、/ebook(中等,150dpi)、/printer(高,300dpi)、/prepress(最高,300dpi+保留色彩) - PDF转PNG:把每一页转成PNG图片(
%03d表示页码用3位数字,如001、002)gs -sDEVICE=png16m -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r300 -o output_%03d.png input.pdf
3. pdfseparate & pdfunite:轻量拆分与合并工具
定位:极简主义者的选择(Poppler工具集的一部分)
核心功能:拆分单页、合并PDF(比pdftk更轻量)
安装:
- macOS:
brew install poppler - Ubuntu:
sudo apt install poppler-utils
实用场景 & 命令示例:
- 拆分所有页:把
input.pdf拆成page_1.pdf、page_2.pdf…pdfseparate input.pdf page_%d.pdf - 合并PDF:把
page1.pdf、page2.pdf合并成merged.pdfpdfunite page1.pdf page2.pdf merged.pdf
4. pdf2txt:快速提取PDF文本
定位:文本提取工具(Poppler工具集成员)
核心功能:从PDF中提取纯文本(支持指定页码范围)
安装:同Poppler(poppler-utils)
实用场景 & 命令示例:
- 提取全部文本:把
document.pdf的文本存到output.txtpdftotext document.pdf output.txt - 提取指定页:只提取第2-5页的文本
pdftotext -f 2 -l 5 document.pdf output.txt - 保留布局:加上
-layout参数,尽量保持PDF中的排版(适合表格类文档)pdftk input.pdf cat 1-3 5 output selected_pages.pdf0
5. qpdf:PDF修复与高级操作工具
定位:处理损坏PDF、调整PDF结构
核心功能:修复损坏的PDF、解密(需知道密码)、提取元数据、线性化PDF(优化网页加载)
安装:
- macOS:
brew install qpdf - Ubuntu:
sudo apt install qpdf
实用场景 & 命令示例:
- 修复损坏的PDF:尝试修复
corrupted.pdf并生成fixed.pdfpdftk input.pdf cat 1-3 5 output selected_pages.pdf1 - 解密PDF:如果知道密码(比如
1234),去除PDF的密码保护pdftk input.pdf cat 1-3 5 output selected_pages.pdf2 - 查看PDF元数据:显示PDF的作者、创建时间、页数等信息
pdftk input.pdf cat 1-3 5 output selected_pages.pdf3
6. img2pdf:图片转PDF的“无缝工具”
定位:将图片(JPG/PNG等)批量转成PDF
核心功能:保持图片质量、支持批量转换、可指定页面大小
安装:
- Python环境:
pip install img2pdf - Ubuntu:
sudo apt install img2pdf
实用场景 & 命令示例:
- 单张图片转PDF:把
photo.jpg转成photo.pdfpdftk input.pdf cat 1-3 5 output selected_pages.pdf4 - 批量图片转PDF:把
images/文件夹下的所有PNG转成一个PDFpdftk input.pdf cat 1-3 5 output selected_pages.pdf5 - 指定页面大小:强制PDF页面为A4大小(适合打印)
pdftk input.pdf cat 1-3 5 output selected_pages.pdf6
7. pdfcrop:裁剪PDF空白边距
定位:去除PDF边缘的空白(适合学术论文、扫描件)
核心功能:自动或手动裁剪空白边距
安装:
- TeX Live发行版自带(因为是LaTeX工具),或:
- Ubuntu:
sudo apt install texlive-extra-utils - macOS:
brew install mactex(或单独安装pdfcrop)
实用场景 & 命令示例:
- 自动裁剪:去除
thesis.pdf的所有空白边距pdftk input.pdf cat 1-3 5 output selected_pages.pdf7 - 手动裁剪:指定上下左右裁剪的距离(单位:bp,1bp≈1点)
pdftk input.pdf cat 1-3 5 output selected_pages.pdf8说明:
--margins "左 上 右 下",正数为保留更多边距,负数为裁剪更多。
三、组合拳:用脚本实现自动化工作流
命令行工具的最大优势是“可组合”——把多个命令串起来,就能实现复杂的自动化任务。
例子1:批量压缩文件夹里的所有PDF
创建一个Shell脚本compress_pdfs.sh:
pdftk input.pdf cat 1-3 5 output selected_pages.pdf9
运行:chmod +x compress_pdfs.sh && ./compress_pdfs.sh
例子2:扫描件转PDF并自动裁剪
假设你用手机扫描了一堆图片(scan_1.jpg、scan_2.jpg…),想转成一个裁剪好的PDF:
pdftk input.pdf cat 1 2east 3-end output rotated.pdf0
四、新手入门小贴士
- 先看帮助文档:每个工具都有
--help参数(如pdftk --help),遇到问题先查帮助; - 从小任务开始:先尝试合并、拆分等简单操作,再逐步尝试复杂脚本;
- 备份原文件:处理PDF前最好备份,避免误操作导致文件损坏;
- 跨平台注意:Windows的命令行(CMD/PowerShell)语法略有不同,比如路径用
\而不是/,但WSL(Windows Subsystem for Linux)可以完美运行Linux命令。
结语:命令行不是“ Geek 专属”
很多人对命令行有“畏难情绪”,觉得“敲代码太复杂”。但实际上,这些PDF工具的常用命令并不难记——你甚至可以把常用命令存成脚本,用的时候双击运行。
命令行工具就像一把“瑞士军刀”,平时可能用不上,但一旦需要处理批量或自动化任务,它就是最高效的选择。试着花10分钟学会一两个工具,你会发现:原来处理PDF可以这么简单。
下次再遇到PDF处理的“小麻烦”,不妨打开终端,敲上几行命令——说不定,你会爱上这种“用代码解决问题”的快感。
