如何通过命令行批量移除PDF的所有批注(含高亮、评论、注释、箭头)
批量移除PDF文件批注的命令行方法
当然有办法!批量清理PDF里的高亮、评论、箭头这类批注,用命令行工具绝对是最高效的方案,下面给你分享几个我常用的工具和具体操作步骤:
1. pdftk(PDF Toolkit)—— 老牌可靠的选择
pdftk是处理PDF的经典工具,几乎能搞定所有基础操作,移除批注自然不在话下。
先安装pdftk:
- Ubuntu/Debian:
sudo apt install pdftk - macOS:用Homebrew安装
brew install pdftk-java - Windows:可以从官方包管理器或者手动下载安装包
- Ubuntu/Debian:
批量处理脚本(bash):
# 遍历当前目录下所有PDF文件 for file in *.pdf; do # 生成不带批注的新文件,前缀加clean_避免覆盖原文件 pdftk "$file" output "clean_$file" uncompress done
原理是通过uncompress参数重新生成PDF,这个过程会自动丢弃所有交互式批注元素。
2. qpdf—— 现代高效的PDF处理工具
qpdf是更轻量化、速度更快的工具,支持最新的PDF标准,还有专门的移除批注参数,用起来更直观。
安装qpdf:
- Ubuntu/Debian:
sudo apt install qpdf - macOS:
brew install qpdf - Windows:通过Chocolatey或者官网下载安装
- Ubuntu/Debian:
批量处理脚本:
for file in *.pdf; do qpdf --remove-annotations "$file" "clean_$file" done
这里--remove-annotations是专门用来移除所有批注的参数,如果你还想优化PDF的加载速度,可以加上--linearize参数:
qpdf --linearize --remove-annotations "$file" "clean_$file"
3. Ghostscript—— 全能型PDF转译工具
Ghostscript主要用于PDF和PostScript之间的转译,但也能轻松清理掉批注这类非打印元素。
安装Ghostscript:
- 大部分Linux发行版默认自带,如果没有就用
sudo apt install ghostscript - macOS:
brew install ghostscript - Windows:官网下载安装包即可
- 大部分Linux发行版默认自带,如果没有就用
批量处理命令:
for file in *.pdf; do gs -o "clean_$file" -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -dPrinted=false "$file" done
参数说明:
-dPrinted=false:告诉Ghostscript不要保留批注、表单这类交互式元素-dPDFSETTINGS=/prepress:保证输出PDF的质量和原文件一致,你也可以换成/screen(更小体积)或者/default
一些注意事项
- 先测试单个文件:批量处理前,先拿一个PDF测试命令,确保输出的文件确实移除了批注,且没有损坏内容
- 备份原文件:处理前最好把所有要操作的PDF备份一份,避免意外情况
- 加密PDF:如果你的PDF是加密的,需要先解密才能处理。比如pdftk可以用
pdftk "$file" input_pw 你的密码 output "decrypted_$file"先解密,再处理;qpdf用qpdf --password=你的密码 --decrypt "$file" "decrypted_$file"
内容的提问来源于stack exchange,提问作者Rafael Beirigo




