In mid-June of 2022, iText hosted our first ever digital customer event: Shake It! Make It! We wanted to share some tips and tricks to help our users make the most of iText’s solutions and allow some of our current customers to showcase what they were able to create using iText.
To kick off the event, our Chief Technology Officer Raf Hens and VP of Products André Lemos joined forces to look back at how iText started, and where it is going. As a new hire that joined iText right in the week of this event, it was very interesting for me to hear about iText’s beginnings and how the company and technology has grown, as well as our plans for the future.
As Raf and André explained, the iText PDF library grew out of a need to automate the creation of PDF documents. The idea was to provide an easy way to take information from sources like databases or web forms and write it into standard PDF files that could be easily read, shared, searched, and archived.
In the early days, iText was purely a hobby project, written originally in Java and then ported to .NET. It was always open-source, and a thriving online community developed with plenty of discussion and support. Today, the iText 7 Core PDF library and certain add-ons remain available under the open-source AGPL – although commercial licences are also available for companies that can’t work with AGPL code.
“Over the years, of course, a lot of functionality was added on top of that initial use case of generating PDF documents in an automated way” - Raf Hens
Before long, the scope of the iText PDF library expanded, gaining extra features and add-ons. The goal was always to build convenience onto the core functionality, so that users and developers could get results without having to write lengthy blocks of code or master the highly complex PDF format. With the release of iText 7 in 2016, the library was rearchitected, gaining a more modular design and a new range of add-ons enabling extra features. Over the last few years, more and more specialized functionality has been added to the iText 7 Suite SDK to meet the evolving needs of our customers.
More recently, a REST API was also made available, enabling developers to more easily integrate the iText 7 Suite’s functions into their own projects. Using this REST API, operations such as merging and splitting documents can be accomplished with simple API calls. As Raf noted, there is an inevitable trade-off between simplifying processes and losing hands-on control. Some tasks – such as generating PDFs from raw data – require a certain amount of technical engagement. However, iText has always been about building convenience layers on top of its low-level PDF API, and in recent years we’ve gone even further by developing full-blown document solutions.
With the launch of our template-based PDF generator iText DITO, it became possible to assemble data-driven PDF workflows in a collaborative environment. Similarly, iText pdf2Data offers an easy way to automate intelligent extraction of data from PDF documents in a structured format, so the data can be processed for analysis or reuse. Both solutions offer intuitive, browser-based interfaces and allow anyone to leverage iText’s renowned PDF capabilities, not just developers.
Likewise, iText has been embracing the industry trends toward microservices architecture, cloud infrastructure, and platform services. AWS, Docker, and Kubernetes have seen widespread adoption amongst our customers, and we’ve responded to their needs by making our software available on the AWS Marketplace and MuleSoft for more flexible deployment and easier integration with other APIs.
Work has also been put into developing iText 7 for mobile platforms. The first Android-based version of iText was based on iText 5, under the name iText G. For iText 7, support for modern Android APIs is integrated into the latest release of the SDK, with a roadmap to add even more functionality and add-on features. To demonstrate the currently available functionality, André pointed out that we have a reference implementation available on GitHub which you can even use as a basis for your own projects.
“Connect your Android phone, your emulator, what have you, and in no time you'll be able to open PDFs, merge them, split them, and even add annotations” - André Lemos
Looking to the future, it may be possible to offload some of the more resource-heavy PDF processing to a back-end server, since from an architectural perspective it makes more sense than doing it natively on the mobile device.
Another focus is data extraction – that is, tools and libraries for pulling data from existing PDFs, so that iText can serve as a bridge between any two platforms that involve data or PDF documents. iText pdf2Data began life as an iText 7 add-on, before becoming a standalone solution to enable intelligent data extraction using templates. Work is also under way to further improve the software’s ability to process documents with structured or semi-structured document such as invoices, receipts, identity cards and so forth. Stay tuned too for more developments toward IDP – “intelligent document processing” – which utilizes AI to make sense of more unstructured documents – although as Raf pointed out, an AI or machine learning approach should exist side-by-side with a template-based solution, since each approach has its benefits.
“For simple documents, you want to have a business user just annotating documents and telling the system where the interesting data is” - Raf Hens
There are plenty of exciting things coming from iText in the near future, and I for one am excited to be a part of it. Stay tuned for more highlights from our Shake It! Make It! customer event. We will be posting recaps of all the sessions so you can learn more about iText’s offerings on-demand at your own convenience.
Keep an eye out for the next session from the iText "Shake It, Make It" customer event, A Perfect Blend of Open Source and Commercial: Driving Development and Innovation for All, hosted by iText Pre-Sales manager Al Sterling.
This article was based on a talk given at iText’s 2022 Customer Event.