Linux 系统下压缩 PDF 文件的完整指南
在日常工作中,我们经常会遇到 PDF 文件过大的问题——邮件附件有大小限制、平台上传有体积要求、云存储空间有限。如果你使用的是 Linux 系统,完全不需要上传到第三方网站,本地就能高效完成 PDF 压缩。本文将介绍几种实用的方法,从命令行到图形界面,总有一款适合你。
方法一:Ghostscript(最推荐的命令行方案)
Ghostscript 是 Linux 下最强大、最经典的 PDF 压缩工具,很多桌面软件的底层都依赖它。它完全免费开源,支持批量处理,压缩效果显著,通常可以减少 50%~80% 的文件体积。
安装 Ghostscript:
# Debian/Ubuntu 系
sudo apt install ghostscript
# Fedora/CentOS 系
sudo dnf install ghostscript
基础压缩命令:
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 \
-dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH \
-sOutputFile=output.pdf input.pdf
核心参数 -dPDFSETTINGS 决定了压缩级别:
| 参数值 | 分辨率 | 说明 |
|---|---|---|
/screen |
72 dpi | 压缩最狠,适合屏幕阅读 |
/ebook |
150 dpi | 平衡之选,一般文档推荐 |
/printer |
300 dpi | 质量较高,适合打印 |
/prepress |
300 dpi | 几乎无损,高质量保留 |
💡 小贴士: 对于大多数日常场景,
/ebook模式是最佳选择,兼顾了文件大小和可读性。
批量压缩整个目录下的所有 PDF:
for file in *.pdf; do
gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook \
-dNOPAUSE -dQUIET -dBATCH \
-sOutputFile="compressed_${file}" "$file"
done
更精细地控制图片分辨率:
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 \
-dPDFSETTINGS=/ebook \
-dColorImageResolution=150 \
-dGrayImageResolution=150 \
-dMonoImageResolution=150 \
-dNOPAUSE -dQUIET -dBATCH \
-sOutputFile=output.pdf input.pdf
方法二:ps2pdf(Ghostscript 的简化封装)
ps2pdf 本质上是 Ghostscript 的快捷封装,命令更简洁,适合快速压缩:
ps2pdf -dPDFSETTINGS=/ebook input.pdf output.pdf
一行命令搞定,非常适合不想记长串参数的场景。
方法三:qpdf(轻量级结构优化)
qpdf 是另一个优秀的命令行工具,它通过压缩内容流和生成对象流来减小文件体积,对清晰度的影响非常小。
安装:
# Debian/Ubuntu 系
sudo apt install qpdf
# Fedora/CentOS 系
sudo dnf install qpdf
压缩命令:
qpdf --compress-streams=y --object-streams=generate input.pdf output.pdf
qpdf 的优势在于它是"结构优化"而非"降质压缩",适合对画质有严格要求的场景。
方法四:Python 脚本(适合开发者定制)
如果你熟悉 Python,可以使用 PyPDF2 库编写压缩脚本,特别适合集成到自动化工作流中:
from PyPDF2 import PdfReader, PdfWriter
def compress_pdf(input_path, output_path):
reader = PdfReader(input_path)
writer = PdfWriter()
for page in reader.pages:
writer.add_page(page)
# 压缩内容流
for i in range(len(writer.pages)):
writer.pages[i].compress_content_streams()
with open(output_path, "wb") as fp:
writer.write(fp)
compress_pdf("input.pdf", "output.pdf")
这种方式对清晰度的影响最小,但压缩率相对 Ghostscript 会低一些。
方法五:图形界面工具(不想碰命令行的选择)
如果你不习惯命令行操作,也有图形界面方案:
- LibreOffice Draw: 打开 PDF → 文件 → 导出为 PDF → 调低图像分辨率后导出,大多数 Linux 发行版已预装。
- Stirling PDF: 自托管的 Web 应用,集成 60 多种 PDF 处理工具(含压缩),通过 Docker 部署,数据完全本地处理,隐私安全。
- pdfshrinker / krop: 轻量级 GUI 压缩工具,界面简单直观。
注意事项
- 压缩效果因文件而异: 包含大量图片的 PDF 压缩效果最明显(可达 80% 以上),纯文字 PDF 压缩空间有限。
- 备份原文件: 压缩是有损操作,建议先备份重要文件再处理。
- 扫描件效果一般: 整页都是图片的扫描件 PDF,Ghostscript 的常规模式效果有限,需要配合更激进的参数。
- 隐私优先本地处理: 合同、证件等敏感文件,务必使用本地工具处理,避免上传到在线服务。
总结对比
| 工具 | 压缩率 | 易用性 | 适合场景 |
|---|---|---|---|
| Ghostscript | ⭐⭐⭐⭐⭐ | 中等 | 批量处理、精细控制 |
| ps2pdf | ⭐⭐⭐⭐⭐ | 简单 | 快速压缩 |
| qpdf | ⭐⭐⭐ | 简单 | 无损结构优化 |
| PyPDF2 | ⭐⭐ | 需编程 | 自动化集成 |
| GUI 工具 | ⭐⭐⭐⭐ | 最简单 | 日常少量处理 |
对于大多数用户,Ghostscript + /ebook 模式就是最佳方案——安装简单、命令好记、效果出色。希望这篇指南能帮到你!
- 点赞
- 收藏
- 关注作者
评论(0)