How hourinx/pdfcpu works
pdfcpu is a Go library and CLI for reading, validating, transforming, and writing PDF files. The principal workflow is a user invoking a CLI command, which runs a CLI operation and uses the API to process a PDF. The README also documents broad capabilities including page operations, extraction, forms, security, signatures, and document generation. Source excerpts support several internal relationships; dashed edges mark plausible links whose wiring was not shown in the sampled source.
Main entry points: api.go Go API · context.go PDF Context · fontDict.go Font Processing · read.go PDF Reader
Components 19
User Interfaces
- CLI Commands
pkg/cli/dispatch.go - CLI Operations
pkg/cli/document_exec.go - Go API
pkg/api/api.go
PDF Processing
- PDF Reader
pkg/pdfcpu/read.go - PDF Context
pkg/pdfcpu/model/context.go - PDF Validation
pkg/pdfcpu/validate/annotation.go - PDF Writer
pkg/pdfcpu/write.go
Document Features
- Page Operations
pkg/pdfcpu/page.go - Stamps & Watermarks
pkg/api/stamp.go - Form Handling
pkg/api/form.go - Form Engine
pkg/pdfcpu/form/form.go - PDF Creation
pkg/pdfcpu/create/create.go - Signature Tools
pkg/pdfcpu/sign/revocate.go
PDF Internals
- Font Processing
pkg/pdfcpu/font/fontDict.go - Font Installation
pkg/font/install.go - Core Font Metrics
internal/corefont/metrics/standard.go - Layout Primitives
pkg/pdfcpu/primitives/content.go - Stream Filters
pkg/filter/filter.go
Other components
- CLI/API User
Connections 22
- CLI/API User → CLI Commands: runs commands
README.md - CLI/API User → Go API: uses API
README.md - CLI Commands → CLI Operations: dispatches
- CLI Operations → Go API: invokes
pkg/cli/document_exec.go - Go API → PDF Reader: reads PDFs
- PDF Reader → Stream Filters: decodes streams
pkg/pdfcpu/read.go - PDF Reader → PDF Context: builds context
- PDF Context → PDF Validation: provides document state
- Go API → PDF Writer: writes results
- Go API → Page Operations: performs transformations
- Go API → Stamps & Watermarks: offers stamping
README.md - Stamps & Watermarks → PDF Context: updates PDF
- Go API → Form Handling: offers form tools
README.md - Form Handling → Form Engine: delegates form work
pkg/api/form.go - Form Handling → PDF Creation: uses creation helpers
pkg/api/form.go - Go API → PDF Creation: creates PDFs
README.md - Go API → Signature Tools: offers signature tools
README.md - Font Processing → Font Installation: uses font utilities
pkg/pdfcpu/font/fontDict.go - Font Processing → Core Font Metrics: uses core metrics
- PDF Creation → Layout Primitives: uses layout primitives
pkg/pdfcpu/create/create.go - Font Processing → PDF Context: uses document model
pkg/pdfcpu/font/fontDict.go - Form Engine → Layout Primitives: renders fields
pkg/pdfcpu/form/form.go