A week ago, a free library was released to generate pdf files of version OpenPDF 1.1.0, the most significant upgrade of this library in recent times.
OpenPDF is a Java library for creating and editing PDF files, which is distributed under the dual license LGPL/MPL. The library is based on the iText fork. In reality, she has such a story:
LibrePDF / OpenPDF
forked from rtfarte / OpenPDF
forked from kulatamicuda / iText-4.2.0
forked from daviddurand / iText-4.2.0
forked from ymasory / iText-4.2.0
All forks lead the story from one version of iText 4.2.0, which was released eight years ago and became the latest version under a free license. IText developers themselves switched to AGPL and concentrated on creating the fifth version in order to more successfully sell commercial software. To date, they have grown to version iText 7. But the free project, too, did not die, but continued to develop by the community.
Over the past time, the library has been improved in some respects, several bugs have been fixed. Although the changes are not too significant, but development continues, and everyone can contribute. If you need any specific functionality when generating PDF files, then suggest a patch and implement this feature for everyone.
Since the old "original" version 4.2.0, the following changes have been made.
Java 8 compilation
if the PDF file ends unexpectedly, an IOException is thrown, not a PDFNull
adopted patch to fix NPE in XFA Form (escapeSom method)
UnembedFontPdfSmartCopy functionality from Vicente Alencar accepted
ubermichael adopted RTF Footer functionality
compatibility fix to support more recent cryptographic libraries Bouncy Castle (1.54)
some NPE fixes and twisted Maven framework support
OpenPDF is a convenient way to implement the generation of PDF documents in your project, including cryptographic digital signature. This is a ready-made and free module suitable for use in electronic document management. And such a system can be used, for example, with certificates for signing a PDF to certify and approve PDF documents. Or integrate with GlobalSign's Digital Signing Service, a cloud-based signature service. Although the latter already works, for example, with the solution for signing Adobe Sign documents in the Adobe Document Cloud.
Support for crypto libraries Bouncy Castle is very useful. At the heart of the Bouncy Castle architecture is a set of low-level APIs that implement all cryptographic algorithms. There is support for standard high-level cryptographic APIs of the Java and C # platforms.
The Bouncy Castle Java APIs in version 1.53 included about 400 thousand lines of code and supported a large number of algorithms, including the basic generation of X.509 certificates, the work of the JCE / JCA provider, PKCS # 10, PKCS # 12, S / MIME, OpenPGP, DTLS, TLS, OCSP, TSP, CMP, CRMF, DVCS, DANE, EST, Attribute Certificate (AC), which are used to associate additional information with a public key certificate.
It should be noted that in addition to OpenPDF, there are other free libraries for generating PDF. For example, there is veraPDF or the wonderful Apache PDFBox library. The latter is actively supported and has a rich set of functions:
Extract Unicode text from PDF files.
Merge multiple files or split one PDF into parts.
Extract data from PDF forms or fill them out.
PDF validation against PDF / A-1b.
Print PDF through standard Java APIs.
Save as images such as PNG or JPEG.
Create PDF from scratch, with embeddable fonts and illustrations.
Digitally Sign PDF.
So nowadays it’s not at all necessary to use proprietary tools to create or edit PDFs. There are many free alternatives for this.