# pdfcpu **Repository Path**: wcp_code/pdfcpu ## Basic Information - **Project Name**: pdfcpu - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-30 - **Last Updated**: 2026-06-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # pdfcpu: PDF tooling for Go and the command line [](https://github.com/pdfcpu/pdfcpu/actions) [](https://coveralls.io/github/pdfcpu/pdfcpu?branch=master) [](https://pkg.go.dev/github.com/pdfcpu/pdfcpu) [](https://goreportcard.com/report/github.com/pdfcpu/pdfcpu) [](https://opensource.org/licenses/Apache-2.0) [](https://github.com/sponsors/hhrutter)
pdfcpu provides a Go API and command-line tools for working with PDF files. It supports PDFs across versions. PDF 2.0 (ISO-32000-2) validation support is basic and continuously improving. --- ## Installation ### CLI 👉 [CLI Installation instructions](https://pdfcpu.io/getting_started/install_cli/?src=github-readme) ### Go API 👉 [API Installation instructions](https://pdfcpu.io/getting_started/install_api/?src=github-readme) --- ## Usage ### CLI Validate a PDF: ``` pdfcpu validate input.pdf ``` Merge two PDFs: ``` pdfcpu merge merged.pdf in1.pdf in2.pdf ``` ### Go API See API documentation for usage examples. --- ## Features * Validate, optimize, split, trim, and merge PDFs * Extract and manipulate images, fonts, and metadata * Encrypt and decrypt PDFs * Resize and rotate pages * Add and remove stamps and watermarks * Validate signature integrity, report signature evidence, and remove signatures * Manage attachments and more... ## In Action Common operations and examples: --- ## Command Set Complete list of supported commands: | | | | |---|---|---| | [annotations](https://pdfcpu.io/annot/annot) | [attachments](https://pdfcpu.io/attach/attach) | [booklet](https://pdfcpu.io/generate/booklet) | | [bookmarks](https://pdfcpu.io/bookmarks/bookmarks) | [boxes](https://pdfcpu.io/boxes/boxes) | [certificates](https://pdfcpu.io/core/certs) | | [change owner password](https://pdfcpu.io/encrypt/change_opw) | [change user password](https://pdfcpu.io/encrypt/change_upw) | [collect](https://pdfcpu.io/core/collect) | | [config](https://pdfcpu.io/config/config) | [create](https://pdfcpu.io/create/create) | [crop](https://pdfcpu.io/core/crop) | | [cut](https://pdfcpu.io/generate/cut) | [decrypt](https://pdfcpu.io/encrypt/decryptpdf) | [encrypt](https://pdfcpu.io/encrypt/encryptpdf) | | [extract](https://pdfcpu.io/extract/extract) | [fonts](https://pdfcpu.io/fonts/fonts) | [form](https://pdfcpu.io/form/form) | | [grid](https://pdfcpu.io/generate/grid) | [images](https://pdfcpu.io/images/images) | [import](https://pdfcpu.io/generate/import) | | [info](https://pdfcpu.io/info) | [keywords](https://pdfcpu.io/keywords/keywords) | [merge](https://pdfcpu.io/core/merge) | | [ndown](https://pdfcpu.io/generate/ndown) | [nup](https://pdfcpu.io/generate/nup) | [optimize](https://pdfcpu.io/core/optimize) | | [pagelayout](https://pdfcpu.io/pagelayout/pagelayout) | [pagemode](https://pdfcpu.io/pagemode/pagemode) | [pages](https://pdfcpu.io/pages/pages) | | [permissions](https://pdfcpu.io/encrypt/perm_set) | [portfolio](https://pdfcpu.io/portfolio/portfolio) | [poster](https://pdfcpu.io/generate/poster) | | [properties](https://pdfcpu.io/properties/properties) | [resize](https://pdfcpu.io/core/resize) | [rotate](https://pdfcpu.io/core/rotate) | | [signatures](https://pdfcpu.io/core/sign) | [split](https://pdfcpu.io/core/split) | [stamp](https://pdfcpu.io/core/stamp) | | [trim](https://pdfcpu.io/core/trim) | [validate](https://pdfcpu.io/core/validate) | [viewerpref](https://pdfcpu.io/viewerpref/viewerpref) | | [watermark](https://pdfcpu.io/core/watermark) | [zoom](https://pdfcpu.io/core/zoom) | | --- ## Motivation pdfcpu aims to provide comprehensive PDF processing capabilities implemented in Go. It focuses on correctness, robustness and independence from external dependencies. --- ## Focus - comprehensive PDF processing functionality - minimal external dependencies - predictable and stable behavior --- ## Documentation * Project documentation: https://pdfcpu.io * Changelog: https://pdfcpu.io/changelog ### CLI * Command help: `pdfcpu [command] --help` ### Go API * Package documentation: https://pkg.go.dev/github.com/pdfcpu/pdfcpu * API documentation: https://pkg.go.dev/github.com/pdfcpu/pdfcpu/pkg/api * Examples: * https://github.com/pdfcpu/pdfcpu/tree/master/pkg/api/test * https://github.com/pdfcpu/pdfcpu/tree/master/pkg/samples --- ## Contributing Contributions are welcome. * Report bugs or propose changes via [issues](https://github.com/pdfcpu/pdfcpu/issues/new/choose) * Discuss ideas on the [discussion board](https://github.com/pdfcpu/pdfcpu/discussions) * For PRs, please open an issue or discussion first ### Guidelines * Base your work on the latest commit * Include verbose output (`pdfcpu cmd -vv ...`) and a sample PDF when reporting issues * Please sign your commits ### Reporting crashes Crashes may occur due to the wide variety of PDF producers and formats in use, including older or non-compliant files. In many cases this is related to validation issues or edge cases in the parser. Even with relaxed validation, some files cannot be processed. These cases are essential for improving pdfcpu by extending validation and handling additional real-world PDFs. If you encounter a crash, please report it. Start by validating the file using the CLI: ```bash pdfcpu validate -vv