Open source PDF generation for Java
Readable PDF composition for Java.
Kawa gives you composable layout primitives, automatic pagination, styling, and PDF operations in one fluent API, so reports and document workflows stay maintainable as they grow.
Java 17+
Apache PDFBox 3
No templates
Why Kawa
A layout-first API for documents that need more than a quick export.
The library is designed for invoices, reports, statements, confirmations, and generated PDFs that need structure, reuse, and predictable output.
- Fluent layout primitives
- Compose pages with text, tables, images, rows, columns, and reusable building blocks instead of hand-placing PDF objects.
- Automatic pagination
- Long content flows across pages cleanly while headers, footers, spacing, and wrapping stay consistent.
- Production-ready output
- Embed fonts, work with units, style documents, add QR codes or barcodes, and ship polished reports from Java.
Explore the docs
Start with the core concepts, then branch into elements and styling.
The docs are organized so you can get a first document out quickly, then deepen into composition, fonts, colors, units, and PDF workflows.
Composable PDFs, reusable report classes, and layout that scales.