← Back to Open-Source PDF Software

Open-Source Java PDF Software

25 open-source PDF tools written in Java.

Java

Pdf Viewer Plus

Gui

Simple Android PDF viewer app: opens PDFs from local storage or internet links, and can download PDFs to the device.

DepreciatedStale
Java

Images To PDF

Gui

Android PDF toolkit centered on creating PDFs from camera/gallery images (and converting text files to PDF), plus managing existing PDFs: merge, split, compress, remove/rearrange/rotate pages, extract images, and encrypt/decrypt.

Java

Simple Android PDF Viewer

Gui

Android PDF viewer (built on pdf.js) that opens PDFs via Android content providers without requiring app permissions, rendering them inside a sandboxed WebView with no network/filesystem/content-provider access and a restrictive Content-Security-Policy for security.

Java

Stirling-PDF

Web ApiWeb App

Self-hostable PDF toolkit with 50+ tools: edit, merge, split, sign, redact, and convert PDFs; OCR scanned pages; compress files; validate signatures; apply watermarks; and automate workflows via no-code pipelines, a REST API, and webhooks. Offered as a browser-based UI, desktop client, or self-hosted server (incl. air-gapped deployment).

Java

Apache XML Graphics FOP

Library

Print formatter driven by XSL Formatting Objects (XSL-FO): reads an FO tree (often produced via XSLT from semantic XML) and renders it to PDF (its primary target, targeting the PDF 1.4 spec), plus PostScript, PCL, AFP, PNG, RTF, TXT, and other outputs. Handles multi-page tables, footnotes, static page regions, and external graphics; usable standalone, embedded, via servlet, or via an Ant task.

Java

Apache Tika

CliDriverLibraryServer

Content-analysis toolkit that detects file types and extracts text and metadata from over a thousand file formats (including PDF, DOCX, PPTX, XLSX) through a single parsing interface; supports OCR (via Tesseract), language detection, named-entity recognition, and parsing of embedded documents/attachments. Available as a Java library, CLI (tika-app), or REST server (tika-server).

Java

Apache PDFBox

CliLibrary

Java library and CLI toolset covering PDF creation from scratch (with embedded fonts/images); Unicode text extraction; splitting and merging; form field extraction and filling; PDF/A-1b validation via Preflight; rendering pages to PNG/JPEG; printing via the Java printing API; and digital signing.

Java

PDFLayoutTextStripper

Library

Subclass of Apache PDFBox's PDFTextStripper that converts a PDF to plain text while preserving the original layout/spatial positioning, making it easier to extract structured data such as tables and form content.

Stale
Java

OpenPDF

Library

PDF creation/manipulation library: creates PDFs from scratch and modifies existing ones (add/remove pages, edit text); HTML-to-PDF conversion (openpdf-html module); text, fonts, graphics, images, and tables; page layout control; encryption and digital signing (via BouncyCastle); text extraction; PDF-to-image rendering (openpdf-renderer); and PDF 2.0 (ISO 32000-2) features including Brotli stream compression.

Java

itextpdf

Library

Legacy iText 5: core PDF creation/manipulation library (receiving security fixes only), with add-on modules for PDF 2.0 features (itext-xtra), PDF/A generation/validation (itext-pdfa), and XML/HTML-to-PDF conversion (xmlworker). Targets Java 5 compatibility, which blocks upgrading some vulnerable dependencies.

Depreciated
Java

PDFsam

Gui

Free, cross-platform desktop app (JavaFX, self-contained with bundled JRE since v4) for splitting, merging, mixing, rotating, and extracting pages from PDF files.

Java

tabula-java

CliLibrary

Table-extraction library (powers the Tabula tool) that pulls tabular data out of PDFs using lattice mode (ruled cell borders) or stream mode (no borders), exporting to CSV, TSV, or JSON; usable as a CLI for batch processing or as a Java API, with support for selective pages, custom extraction areas, and password-protected files.

Java

XDocReport

Library

Merges DOCX/ODT template documents (authored in MS Word or OpenOffice/LibreOffice) with Java data models to generate reports, then converts the result to PDF, XHTML, or the original office format, including an iText-based PDF converter.

Java

Flying Saucer

Library

Renders well-formed XML/XHTML using CSS 2.1 layout/formatting to Swing panels, images, or PDF (via an OpenPDF-based renderer, or by delegating to a headless Chrome shell for modern HTML5/CSS3 support); also offers SWT output for Eclipse-based apps.

Java

neoFlyingSaucer

Library

Pure-Java HTML/CSS-to-PDF/image renderer, a modernization of Flying Saucer.

DepreciatedStale
Java

Open HTML to PDF

Library

Renders a practical subset of XML/XHTML/HTML5 with CSS 2.1+ (incl. CSS3 transforms, gradients, multiple backgrounds) to PDF or images, with SVG and MathML plugin support, accessible/tagged PDF output (Section 508, PDF/UA, WCAG 2.0), PDF/A compliance, font fallback and embedding, RTL/bidi text, footnotes, and file embedding via link download attributes.

Stale
Java

Docs to PDF Converter

CliLibrary

Standalone CLI tool and embeddable Java library that converts DOC, DOCX, PPT, PPTX, and ODT files to PDF without requiring LibreOffice; PPT/PPTX slides are converted to PDFs with each slide embedded as a PNG image.

DepreciatedStale
Java

YARG

Library

Java reporting library (developed by Haulmont for the CUBA Platform) that fills templates with data (loaded via SQL, Groovy, or other sources) and generates reports in Office formats (doc/docx/xls/xlsx), HTML, FreeMarker, CSV, or custom text — headless, with no built-in UI, for embedding into host applications.

Java

veraPDF

CliLibrary

Industry-backed, open-source validation library and CLI for checking PDF files against the PDF/A and PDF/UA standards.

Java

JasperReports

Library

Java reporting engine that compiles XML report templates (.jrxml) into executable reports (.jasper), pulling data from any data source to produce pixel-perfect documents; exports to PDF, HTML, Excel, Word, and OpenOffice formats, and renders Pie/Bar/Stacked Bar charts. Designed with Jaspersoft Studio and embeddable via API.

Java

Eclipse BIRT

GuiWeb App

Open-source reporting and data-visualization project (Eclipse Foundation): report design/engine/model for generating reports from data sources, a charting module for graphical visualizations, and a web viewer component for browser-based report delivery.

Java

iText

Library

Create and manipulate PDFs, merge documents, digitally sign, create/fill AcroForm fields, PDF/A and PDF/UA generation, encryption (incl. FIPS-compliant crypto), barcode generation, SVG embedding, content redaction, and (via separate add-ons) OCR and HTML/CSS-to-PDF conversion.

Depreciated
Java

AndroidPdfViewer

Library

Android library (built on PdfiumAndroid/PDFium) for displaying PDF documents with animated page transitions, gestures, pinch/double-tap zoom, and page navigation; ownership recently transitioned and the project is seeking contributors.

Java

PdfBox-Android

Library

Android port of Apache PDFBox for reading and manipulating PDF documents on-device, with image handling (including optional JPX/JPEG2000 support via JP2Android).

Stale
Java

PdfViewPager

Library

Android widget that displays PDF documents (from app assets, SD card, or remote URLs) inside Activities or Fragments, with built-in zooming and panning; requires Android API 21+ (uses the platform PdfRenderer class).

Stale