pdfcpu:用Go编写的PDF处理工具,支持CLI和API调用
pdfcpu 在 GitHub 上已经拿到 8,631 Star 了。
这是一个用Go语言编写的PDF处理库,兼容所有PDF版本,对PDF 2.0的支持正在持续优化。
1、核心能力
pdfcpu覆盖绝大多数PDF处理需求,同时提供CLI命令行工具和Go API两种使用形式。支持的操作包括PDF校验、优化、拆分、裁剪、合并,提取和编辑图片、字体、元数据,加密解密PDF,调整页面大小和旋转,添加删除印章和水印,管理数字签名,处理附件等。目前一共支持超过40种操作命令,几乎包含日常工作中所有PDF处理场景。

2、使用方法
CLI工具安装后可以直接在命令行调用。校验PDF是否符合PDF 2.0标准只需执行pdfcpu validate input.pdf,合并两个PDF使用pdfcpu merge out.pdf in1.pdf in2.pdf。更多命令可以通过pdfcpu [command] --help查看帮助文档,官方网站也提供了所有命令的详细使用说明。
Go API的使用示例可以参考官方文档,包括pkg.go.dev上的包说明和GitHub仓库中的示例代码,示例覆盖了绝大多数常用API调用场景,开发者可以直接参考复用。

3、设计特点
pdfcpu的开发聚焦三个方向。第一是功能覆盖完整,开发团队持续扩展支持的PDF操作类型,目前已经可以满足绝大多数用户的PDF处理需求。第二是外部依赖极少,整个库基于Go语言原生能力开发,部署和集成成本低,不需要额外安装其他依赖组件。第三是运行行为稳定可预测,开发团队优先保证处理结果的正确性和运行过程的稳定性,减少异常情况出现。
4、适用场景
普通用户可以直接使用CLI工具完成日常PDF处理工作,不需要安装复杂的桌面PDF软件。开发人员可以将Go API集成到自己的应用中,实现PDF处理相关的功能,比如文档管理系统、在线PDF工具站点、企业内部文档处理流程等。
项目维护方会持续优化对不同PDF格式的支持,遇到无法处理的文件可以通过issue反馈,提交命令执行的详细日志和样例文件,帮助项目优化处理能力。如果文件可以在Adobe Reader或macOS Preview中打开但无法被pdfcpu处理,维护方通常会在后续版本中添加对应支持。
开源地址:https://github.com/pdfcpu/pdfcpu



