pdfcpu:一个Go语言写的PDF工具箱,命令行全搞定

pdfcpu:一个Go语言写的PDF工具箱,命令行全搞定

pdfcpu 在 GitHub 上已经拿到 8.6K Star 了。

这是一套用 Go 写的 PDF 处理库,同时提供命令行工具和编程接口。它的定位是把 PDF 操作搬到终端里,不用打开图形界面。

正文顶部截图

1、 这玩意儿是干嘛的

一句话:用命令行处理 PDF。

合并拆分、加密解密、添加水印、提取图片、旋转页面、管理书签和附件。还支持创建 PDF、生成缩略图、小册子排版、校验 PDF 规范合规性,以及数字签名处理。

总共四十多个子命令,覆盖了日常 PDF 操作的多数场景。

README区域截图

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 都能快不少。

posted @ 2026-06-05 21:19  小飞技术快餐  阅读(6)  评论(0)    收藏  举报