外观
PDF 处理工具:pdfunite 和 Ghostscript
在 Ubuntu 上处理 PDF,不一定要打开图形界面软件。很多常见任务,比如合并多个 PDF、压缩体积、提取指定页,用命令行工具反而更直接。
这篇文章介绍两个很实用的工具:
pdfunite:专门用来合并 PDF,简单直接Ghostscript:功能更全面,适合压缩、抽页、重新生成 PDF
安装
这两个工具都可以直接从 Ubuntu 软件源安装,大部分发行版都已经装好了:
sudo apt update
sudo apt install poppler-utils ghostscript其中:
pdfunite来自poppler-utilsgs是 Ghostscript 的命令行程序
安装后可以这样确认:
pdfunite -h
gs -hpdfunite:最简单的 PDF 合并工具
pdfunite 的定位非常明确:把多个 PDF 按顺序合并成一个 PDF。
最基本的用法:
pdfunite chapter1.pdf chapter2.pdf chapter3.pdf book.pdf或者结合 shell 通配符:
pdfunite *.pdf all.pdf不过这里要注意一点:*.pdf 的顺序由 shell 展开决定,通常按文件名字典序排列。如果你的文件名是 1.pdf 2.pdf 10.pdf,合并顺序可能不是你想要的。更稳妥的做法是把文件名补零,比如:
01.pdf
02.pdf
03.pdf
...
10.pdfGhostscript:更通用的 PDF 处理工具
Ghostscript 的命令是 gs。它不只是 PDF 工具,本质上是 PostScript / PDF 的解释器,所以能力更强,但命令也更长一些。
最常见的几个场景如下。
1. 合并 PDF
Ghostscript 也能合并 PDF:
gs -dBATCH -dNOPAUSE -q \
-sDEVICE=pdfwrite \
-sOutputFile=merged.pdf \
part1.pdf part2.pdf part3.pdf这条命令的核心参数含义是:
-sDEVICE=pdfwrite:把输出设备设为 PDF-sOutputFile=merged.pdf:指定输出文件-dNOPAUSE:处理中间页面时不暂停-dBATCH:处理完后直接退出-q:减少终端输出
如果只是单纯合并,pdfunite 更简洁;但如果你后面还想顺手做压缩或抽页,Ghostscript 更灵活。
2. 压缩 PDF
这是 Ghostscript 最常见的用途之一:
gs -sDEVICE=pdfwrite \
-dCompatibilityLevel=1.4 \
-dPDFSETTINGS=/ebook \
-dNOPAUSE -dBATCH -dQUIET \
-sOutputFile=output.pdf \
input.pdf其中 -dPDFSETTINGS 常见取值有:
/screen:压缩更狠,体积更小,质量更低/ebook:比较常用,兼顾体积和清晰度/printer:更适合打印/prepress:尽量保留高质量/default:默认策略
实际使用时,/ebook 往往是比较稳妥的起点。如果压缩后图片明显发糊,可以试试 /printer 或 /prepress。
3. 提取指定页
比如只想保留第 3 到第 10 页:
gs -sDEVICE=pdfwrite \
-dNOPAUSE -dBATCH -dQUIET \
-dFirstPage=3 -dLastPage=10 \
-sOutputFile=excerpt.pdf \
input.pdf这个命令在处理讲义、论文附录、报告节选时很方便。
4. 转成灰度 PDF
如果你的 PDF 主要是彩色扫描件,转成灰度后有时能明显减小体积:
gs -sDEVICE=pdfwrite \
-dNOPAUSE -dBATCH -dQUIET \
-sColorConversionStrategy=Gray \
-dProcessColorModel=/DeviceGray \
-sOutputFile=gray.pdf \
input.pdf这种方法适合打印材料、黑白文档归档,或者对颜色信息不敏感的场景。
注意事项
- Ghostscript 在处理 PDF 时通常会“重新生成”文件,所以压缩后内容结构、元数据、字体嵌入方式可能和原文件不同
- 对扫描版 PDF 来说,压缩效果通常比较明显;对本来就很干净的矢量 PDF,压缩幅度可能有限
- 在批量处理重要文件前,最好先拿一个样例试一下,尤其是
/screen这类压缩更激进的设置
版权所有
版权归属:Guisong Wu