OpenPDF is an open source Java library for PDF files
OpenPDF is a Java library for creating and editing PDF files with a LGPL and MPL open source license. OpenPDF is the LGPL/MPL open source successor of iText, and is based on a fork, of a fork, of iText 4 svn tag. We welcome contributions from other developers. Please feel free to submit pull-requests and bugreports to this GitHub repository.
OpenPDF version 1.3.22 released 2020-09-18
Get version 1.3.22 here - https://github.com/LibrePDF/OpenPDF/releases/tag/1.3.22
Use OpenPDF as Maven dependency
Add this to your pom.xml file to use the latest version of OpenPDF:
<dependency>
<groupId>com.github.librepdf</groupId>
<artifactId>openpdf</artifactId>
<version>1.3.22</version>
</dependency>
License
GNU General Lesser Public License (LGPL) version 2.1 - https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
Mozilla Public License Version 2.0 - http://www.mozilla.org/MPL/2.0/
We want OpenPDF to consist of source code which is consistently licensed with the LGPL and MPL licences only. This also means that any new contributions to the project must have a dual LGPL and MPL license only.
Documentation
Background
OpenPDF is open source software with a LGPL and MPL license. It is a fork of iText version 4, more specifically iText svn tag 4.2.0, which was hosted publicly on sourceforge with LGPL and MPL license headers in the source code, and lgpl and mpl license documents in the svn repository. Beginning with version 5.0 of iText, the developers have moved to the AGPL to improve their ability to sell commercial licenses.
Projects using OpenPDF
- Spring Framework https://github.com/spring-projects/spring-framework
- flyingsaucer https://github.com/flyingsaucerproject/flyingsaucer
- Confluence PDF Export
- Digital Signature Service - https://github.com/esig/dss
- OpenCMS, Nuxeo Web Framework, QR Invoice Library and many closed source commercial applications as well.
- Full list here: https://mvnrepository.com/artifact/com.github.librepdf/openpdf/usages
Android support
OpenPDF now has Android support, more info here: Android-support
Contributing
Release the hounds! Please send all pull requests. Make sure that your contributions can be released with a dual LGPL and MPL license. In particular, pull requests to the OpenPDF project must only contain code that you have written yourself. GPL or AGPL licensed code will not be acceptable.
Coding Style
- Code indentation style is 4 spaces.
- Generally try to preserve the coding style in the file you are modifying.
Dependencies
Required Dependencies:
- Java 8 or later is required to use OpenPDF. All versions Java 8 to Java OpenJDK 13 have been tested to work.
UTF-8 Fonts:
As of 1.3.21 the UTF-8 Liberation fonts moved to its own module, to reduce the size of the OpenPDF
jar. If you want to use the bundled UTF-8 fonts, please add the following dependency to your project
and use the class org.librepdf.openpdf.fonts.Liberation
.
<dependency>
<groupId>com.github.librepdf</groupId>
<artifactId>openpdf-fonts-extra</artifactId>
<version>${openpdf.version}</version>
</dependency>
Optional:
- BouncyCastle (BouncyCastle is used to sign PDF files, so it's a recommended dependency)
- Provider
- PKIX/CMS
- TwelveMonkeys imageio-tiff - optional by default, but required if TIFF image support is needed.
- JUnit 5 - for unit testing
- JFreeChart - for testing graphical examples
- JFreeChart
- JCommon
- Servlet
- DOM4j is required for the pdf-swing submodule.
- Apache FOP
Credits
Significant Contributors to OpenPDF on GitHub:
- @andreasrosdal - Andreas Røsdal - Maintainer of OpenPDF from 1.0 to 1.3.15, now retired from OpenPDF development.
- @daviddurand - David G. Durand
- @tlxtellef - Tellef
- @asturio - Claudio Clemens
- @ymasory
- @albfernandez - Alberto Fernández
- @noavarice
- @bengolder - Benjamin Golder
- @glarfs
- @Kindrat
- @syakovyn
- @ubermichael - Michael Joyce
- @weiyeh
- @SuperPat45
- @lapo-luchini - Lapo Luchini
- @MartinKocour - Martin Kocour
- @jokimaki
- @sullis
- @jeffrey-easyesi
- @V-F
- @sixdouglas - Douglas Six
- @razilein - Sita Geßner
- @PalAditya - Aditya Pal
- @rammetzger
- @codecracker2014
- @mluppi - M. Luppi
- @vic0075
- @armin-weber
- @dandybudach - Dandy Budach
- @salsolatragus - Sven Amann
- @suiaing
- @prashantbhat - Prashant Bhat
Also, a very special thanks to the iText developers ;)