pdfcpu:一个Go语言写的PDF工具箱,命令行全搞定
pdfcpu:一个Go语言写的PDF工具箱,命令行全搞定
pdfcpu 在 GitHub 上已经拿到 8.6K Star 了。
这是一套用 Go 写的 PDF 处理库,同时提供命令行工具和编程接口。它的定位是把 PDF 操作搬到终端里,不用打开图形界面。

1、 这玩意儿是干嘛的
一句话:用命令行处理 PDF。
合并拆分、加密解密、添加水印、提取图片、旋转页面、管理书签和附件。还支持创建 PDF、生成缩略图、小册子排版、校验 PDF 规范合规性,以及数字签名处理。
总共四十多个子命令,覆盖了日常 PDF 操作的多数场景。

2、 为什么要用它
处理 PDF 的场景大家都不陌生。要给几十份合同加水印,要把扫描件合并成一个文件,要从一堆 PDF 里批量提取图片。打开图形界面软件,导入、操作、导出,每一步都在等。文件一多,时间全耗在鼠标点击上。
pdfcpu 给出的答案是:写成命令行。一个 shell 脚本就能批量跑,扔到 CI 流水线里也能自动跑。没有 GUI 依赖,没有外部库,只有一个二进制文件。
它和 PDF 2.0 (ISO-32000-2) 保持兼容,也能正常解析各种老版本和非标准的 PDF 文件。
3、 安装和使用
CLI 安装:
# macOS
brew install pdfcpu
# 或者直接下载二进制文件
几个随手可用的命令:
# 校验 PDF 是否合规
pdfcpu validate input.pdf
# 合并两个 PDF
pdfcpu merge out.pdf in1.pdf in2.pdf
# 给每页加水印
pdfcpu watermark add input.pdf "机密文件" out.pdf
# 提取所有图片
pdfcpu extract input.pdf output_dir
# 加密
pdfcpu encrypt -upw userpass -opw ownerpass input.pdf
如果要在 Go 项目里集成,引入 pkg/api 包即可。
4、 哪些功能比较实用
水印和印章:支持文本水印、图片水印、PDF 印章,可以调透明度、旋转角度、位置。批量盖章用脚本跑效率很高。
小册子和 N-Up 排版:把多页缩印到一张纸上(2-Up、4-Up),或者按小册子顺序重排页面,适合打印店和资料汇编。
校验和优化:检测 PDF 内部结构问题,压缩体积。线上环境生成的 PDF,先校验再发布能拦住格式错误。
加密和权限:设置打开密码,限制打印、复制、修改等操作权限。
5、 适合哪些人用
- 运维和开发:需要在服务器端自动处理 PDF,不想装大型依赖
- 日常办公:经常批量处理合同、报告、发票等 PDF 文件
- Go 开发者:要在项目里加 PDF 处理能力,直接引用 API
- 排版打印:用小册子、N-Up 等功能辅助排版
这套工具是命令行形态,没有图形界面。如果你习惯点鼠标操作,它不适合你。如果你愿意花十分钟学几个命令,后面每次处理 PDF 都能快不少。
浙公网安备 33010602011771号