别再为 Acrobat 付费:7 条命令搞定 PDF 增删改

需要把 PDF 转成文本、拆出其中几页、或者把几份文档合成一份时,很多人第一反应是掏钱买 Adobe Acrobat,或者上网找一个来路不明的在线转换站——后者往往意味着把文件上传给陌生服务器。

其实还有第三条路。只要愿意用命令行,无论是 Linux、macOS 还是 Windows 的 WSL 环境,都能完全免费地完成这些操作,而且文件全程留在本地。How-To Geek 作者大卫·德洛尼(David Delony)整理了七个足够替代 Acrobat 日常功能的命令行工具,其中多数来自 poppler-utils 与 qpdf 两个软件包。

pdftotext:把 PDF 变成纯文本

这是 poppler-utils 包里的实用工具,作用是提取 PDF 中的文字并写入 .txt 文件。

在 Debian 或 Ubuntu 上安装:

sudo apt install poppler-utils

转换命令:

pdftotext file.pdf file.txt

如果不指定输出文件名,工具会沿用原文件名,只替换扩展名。生成的文本可以直接用分页器或文本编辑器查看。

pdftohtml:转成网页格式

同样出自 poppler-utils,用法与 pdftotext 完全一致,区别只在输出格式变成 HTML:

pdftohtml file.pdf file.html

pdfunite:合并多份文档

需要把几份 PDF 拼成一份时用它。前面列出待合并的文件,最后一个参数是输出文件名:

pdfunite file1.pdf file2.pdf combined.pdf

文件数量没有限制,继续往前追加即可:

pdfunite file1.pdf file2.pdf file3.pdf combined.pdf

pdftoppm:把每一页导出成图片

想把 PDF 的某一页发到邮件或社交平台,转成图片最省事。这个工具默认输出 PPM 格式,但可以通过命令行参数指定其他格式。以 PNG 为例:

pdftoppm -png introductory-statistics-2e_-_WEB.pdf test

执行后,PDF 的每一页都会生成一个以 test 为前缀的 PNG 文件。

qpdf:功能最全面的那一个

qpdf 用于对输入的 PDF 做各种变换后输出为新文件,许多 Linux 发行版已经预装。手动安装同样一行命令:

sudo apt install qpdf

它最实用的能力之一是抽取页面区间。比如取出第 5 到第 10 页:

qpdf --empty --pages introductory-statistics-2e_-_WEB.pdf 5-10 -- excerpt.pdf

这里的 --empty 占据了输入文件的位置;--pages 之后跟输入文件名与页码范围,接着是两个连字符 --,最后才是输出文件名。同样的效果也可以这样写:

qpdf introductory-statistics-2e_-_WEB.pdf --pages . 5-10 -- excerpt.pdf

如果只想要第 5 页和第 10 页这两页,把连字符换成逗号即可:

qpdf introductory-statistics-2e_-_WEB.pdf --pages . 5,10 -- excerpt.pdf

--pages 也能用来合并文档:

qpdf --empty --pages doc1.pdf doc2.pdf doc3.pdf -- output.pdf

两种能力还能叠加。比如从每份文档里各取前三页:

qpdf --empty --pages doc1.pdf 1-3 doc2.pdf 1-3 doc3.pdf 1-3 -- output.pdf

另一个容易被忽略的功能是「线性化」,也就是针对网页浏览做优化。线性化之后的 PDF 会先加载首页,不必等整份文档下载完毕,上传大文件时尤其有用:

qpdf --linearize big_file.pdf web_friendly.pdf

pdfseparate:把文档拆成单页

与 pdfunite 相对,pdfseparate 负责把一份 PDF 拆成多个独立文档:

pdfseparate file.pdf file-%d.pdf

其中 %d 的写法与 C 语言 printf 的格式说明符类似,工具会自动把它替换成对应页码。

只想抽取第 3 到第 5 页:

pdfseparate -f 3 -l 5 file.pdf file-%d.pdf

相比 qpdf,这套参数写法更接近常见惯例。

img2pdf:把一堆图片打包成 PDF

顾名思义,它做的是反向工作。安装方式同样简单:

sudo apt install img2pdf

把当前目录下所有 JPEG 图片合成一份 PDF 相册:

img2pdf *.jpg -o my_pictures.pdf

执行过程中,工具会根据图片情况输出相应的警告或错误提示。

小结

这七个工具覆盖了文本提取、格式转换、合并、拆分、页面抽取、图片互转等日常高频需求,全部免费且开源。花一点时间熟悉参数写法之后,处理 PDF 不必再依赖 Adobe 的订阅服务,也不用把文件交给在线转换网站。

来源:How-To Geek