A comprehensive PDF processing library and CLI written in Go, supporting encryption, validation, and batch operations.
pdfcpu is a PDF processor written in Go that provides a library and command-line interface for manipulating, validating, and managing PDF documents. It solves the need for a programmable, scriptable tool to handle PDF operations like merging, splitting, encrypting, watermarking, and extracting content without relying on external proprietary software.
Go developers needing PDF processing in their applications, system administrators automating PDF workflows via CLI, and anyone requiring batch PDF manipulation with encryption and validation support.
Developers choose pdfcpu for its native Go implementation, comprehensive feature set covering encryption to complex layout generation, and the dual offering of both an API for integration and a CLI for scripting, all under an open-source license.
A PDF processor written in Go.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports over 40 commands including encryption, merging, watermarking, and layout generation, covering most PDF processing needs as listed in the key features.
Offers a Go library for programmatic integration and a command-line interface for scripting and batch operations, aligning with the project's focus on both backend and CLI use.
Built entirely in Go, providing efficient performance and easy integration into Go-based systems, with cross-compilation support via Go install.
Shown by frequent updates, a large contributor list, and ongoing support for PDF 2.0, with badges indicating continuous testing and coverage.
Explicitly marked as Alpha in the README, meaning it may have bugs, breaking changes, and is not yet production-ready for critical applications, requiring careful testing.
The library is only available for Go, so projects in other languages cannot directly use the API without workarounds like CLI calls, limiting cross-platform integration.
Crashes can occur with diverse PDF files, requiring verbose logging and manual reporting as admitted in the 'Reporting Crashes' section, which adds overhead for debugging.