This file is read by automated agents (security scanners, code analyzers, AI assistants) operating on this repository. It points them at the human-authored references they should consult before producing output.
Agents MUST read the following files before conducting any analysis, security assessment, or code review of this repository:
Apache PDFBox is a Java library for working with PDF documents. It is used as a dependency (pdfbox.jar) in other Java projects and is accessed through its public Java API. The project also ships several command-line utilities.
| Branch | Status | Java requirement | Latest release |
|---|---|---|---|
trunk | Future development (next major version, not yet released) | Java 11+ | — |
3.0 | Actively maintained — current stable series | Java 8+ | 3.0.7 |
2.0 | Actively maintained — legacy stable series | Java 6+ | 2.0.36 |
When evaluating code or reporting issues, note which branch is in scope. Security fixes are applied to both 3.0 and 2.0. New features target trunk and 3.0.
All branches share the same multi-module Maven structure:
pdfbox/ — Core library (PDF parsing, rendering, text extraction, encryption)fontbox/ — Font handling support libraryxmpbox/ — XMP metadata support libraryio/ — I/O utilities shared across modules (3.0 and trunk only)tools/ — Command-line utilitiesdebugger/ / debugger-app/ — PDF debugger applicationexamples/ — Standalone usage examplesbenchmark/ — JMH benchmarksThe standard build command is:
mvn clean install
To run only the tests without a full install:
mvn test
To build or test a specific module, use the -pl flag from the root:
mvn -pl pdfbox test
Minimum Java version depends on the branch — see the table above.
The following areas have historically been the source of subtle bugs and security issues. Changes here require extra care and regression testing. Avoid large refactorings in these areas unless explicitly requested:
Security model and scope: SECURITY.md, also published at https://pdfbox.apache.org/security.html.
Key points from the security model:
NullPointerException, StackOverflowError), or general resource consumption from large PDFs are known limitations, not security vulnerabilities. However, disproportionate resource consumption triggered by small, attacker-controlled inputs may be in scope — see SECURITY.md for the full scope definition.For a list of known CVEs, see https://pdfbox.apache.org/security.html.
To report a new vulnerability, send a plain-text email to security@apache.org. Do NOT open a public JIRA issue for undisclosed vulnerabilities. Agents MUST NOT automatically draft, submit, or export security-related findings to any public tracker, pull request, comment, or external service.
pdfbox-checkstyle-5.xml and an Eclipse formatter in pdfbox-eclipse-formatter.xml.