We are proud to announce the release of iText DITO, the latest addition to the iText range of products. iText DITO is (as we said above) a powerful template engine that converts data into iText-quality PDFs, but what does that really mean, and why did we develop it? Whilst there are other templating solutions available, we’d like to take some time to explain why iText DITO is different, and what it could mean for businesses worldwide.
Recognizing a need
Some time ago, we identified that a significant portion of use cases for our hugely successful PDF library were to generate PDF documents from scratch, for example to create bank statements, airline boarding passes, insurance documents, contracts…the list goes on. Many of our customers need to produce these documents in massive quantities, for which iText with its low overhead and powerful API capabilities is ideal.
All these listed use cases have something in common; they all deal with variable data, that is, data that is different for each PDF that is produced. A bank statement for example, contains data unique to each customer. Their names, addresses, account numbers, and of course transactions and bank balances are all different.
Templates to the rescue?
Of course, there are also similarities too. The bank’s name for example is unlikely to change, and the format and layout of the statement itself will remain constant, so templates are commonly used to determine how the generated statement will look, with fields determining where information is placed such as the bank’s name and address, company logo, and tables to contain numerical data. Data calculations may also be required, to calculate exchange rates, interest on loans etc.
Sounds simple, right? Well…not quite. The first problem of course is making a design for the PDF output file so a suitable template can be created. In an ideal world, the person in charge of the project would ask a professional designer to create a template suitable for PDF output. The result would be a template design that’s both attractive, functional, and perfectly meets the business requirements, while also ensuring developers can implement the solution easily.
Reality bites
Back in the real world, however, there might be miscommunication between the people who need the template design and the developers who must implement it, leading to a series of changes in requirements, design, or features, which extends the development cycle. Once the design is finalized, developers then have to implement this design with their PDF library of choice, while also not forgetting to merge all the required data into the PDF correctly. This is not always easy, and sometimes even simple data calculations are difficult to implement, requiring developers to familiarize themselves with the PDF library’s API before any results can be achieved.
Often developers end up designing the template themselves, as only they fully understand how to integrate it into the PDF generation process, but this can mean hard-coded templates that are difficult to revise. Not to mention that developers are not usually trained in PDF design, so the resulting template may not be as attractive as it could be!
As if that wasn’t enough, consider if the data that must be merged into the output PDF comes from a customer, through entering data on a website for example. Developers now have to also design the input form (or an alternative way to get the customer’s data), and in many cases, also parse and process the data to transform it into a suitable format before it can be inserted into the PDF generation pipeline.
Enter iText DITO
Which brings us back to why we created iText DITO. It’s designed to simplify the lives of the developers and designers who have to implement solutions like the one we described above, and in many other types of workflow. The iText DITO solution consists of a template editor front-end, and an SDK back-end for integration into your document production process. Both templates (to generate PDF documents) and input forms (HTML5 forms to capture data from users) can be created using iText DITO, and anyone can design and create great-looking output templates and input forms in an intuitive, drag and drop WYSIWYG editor tool, whether you’re a designer or a developer. It’s HTML5-based, and you can use rich text and insert tables, images, headers and footers, checkboxes and more. What’s more, if you have CSS skills it’s easy to incorporate style sheets to apply to your templates for consistent company branding and style.
The iText DITO SDK is available as either a Docker Container image or as a native Java version. For most applications and environments, we recommended using the Docker image for convenience.
Designing an example template
To return to our bank statement example, below you can see a simple statement created in the iText DITO editor showing some of the available features such as rich text, images and tables to contain the account details and display the transactions:
Data binding and JSON
For variable data and calculations, iText DITO also has powerful data binding capabilities to connect data and template elements, allowing the content in your PDF or input form to be dynamic. In our bank statement for example, you can see how a balance can be calculated using the data calculation features of iText DITO:
If your data is already stored in a database, for example, then you only need to create an output template. Alternatively, you might need to collect data from an input form and then insert it into the required place in your output PDF simply by linking the relevant fields in each template. iText DITO does this by using the power of JSON to transfer data from your chosen data source, whether it’s from an input form, RESTful API, a database, or wherever your data might be stored. All you have to do is to convert the data into JSON format for iText DITO to be able to work its magic.
The iText DITO SDK
Speaking of magic, this is where iText DITO differs from other templating software. Built on the foundation of the iText 7 Core technology, it makes the integration into new or existing workflows easy by giving you access to the iText DITO API. It’s a uniquely scalable and robust solution for developers which, like iText 7 Core itself, is truly enterprise-grade. In addition, iText DITO is currently the only templating solution to support PDF 2.0.
pdfCalligraph and pdfHTML integration
iText DITO fully integrates the pdfCalligraph add-on which offers unparalleled support for many different languages and complex writing systems, enabling the templates you create to be used worldwide. With advanced typographic features for PDF creation and manipulation, pdfCalligraph gives iText DITO the ability to use special fonts and characters in multiple languages such as Arabic, Hebrew, Hindi, Thai and many more. Supporting compound characters, kerning, glyph substitution, and right-to-left languages, it’s a crucial part of the iText DITO package.
iText DITO also utilizes the power of our pdfHTML add-on to enable seamless translation between the templates you design and the PDFs you produce. pdfHTML is an advanced HTML converter that supports both HTML5 and CSS3 code, giving you an exact reproduction as a PDF/A, PDF/UA or tagged PDF, while also supporting dynamic content such as barcodes.
iText DITO: The complete package
By now, we hopefully have made it clear why we’re so proud of iText DITO. It is the result of many months of research and development by the team, offering unrivalled power and functionality for both developers and less technical users. In many ways, it’s a natural continuation of the development of the iText library, which almost 20 years ago gave people the ability to create and manipulate PDF documents in ways that were simply not possible before.
But even now, we’re not resting on our laurels. iText DITO will continue to be developed and improved just like iText itself, to add new features and functionality, and based on the feedback we get from our users. Speaking of which, if you’d like to try iText DITO yourself, click the link to request a demo. We’d love to hear from you!