This time of year is inextricably linked with Easter and its traditions. While it may not justify its own bank holiday quite yet, we have been steadily releasing our second quarterly iText 7 Suite update around the same time each year. We hope you’ve had your share of chocolate already, since we decided to focus on packing our open-source iText 7 Core library and eight of its add-ons with improved and expanded support for key features.
Don’t forget that you can use iText 7 Core and it’s open-source add-ons for free under the AGPL conditions. For use in a closed-source environment, or to use closed-source add-ons, you’ll need version 3.0.6 of the license key library and the appropriate license file. For a complete overview of all add-ons and their availability head to our product page.
Alternatively, if you’d like to try out the entire iText 7 Suite (which includes iText 7 Core and all the open and closed-source add-ons) you can get a free 30-day trial while keeping your IP safe under the terms of our commercial license.
iText 7 Suite releases
iText Core 7.1.15
We've started preparations for the release of our next major version (7.2) so in this release:
- all deprecated methods of the layout module API have been removed.
- support of the .NET 4.0 framework was dropped in favor of 4.5.
- Bouncy Castle's version was updated to 1.68.
In addition this release brings many important changes to iText 7. While many of these changes relate to the flexbox support that we've added to pdfHTML 3.0.4, there are also an number of substantial changes which explicitly affect iText 7 Core behavior. They may not be immediately obvious, but are still significant and involved a great deal of effort from our team:
- support forType3 fonts with non-standard glyph names. Please see the example linked in the release notes for more details.
- improved performance of the layout module for better processing of extremely large block elements and correct rendering of a table's cells. This can lead to significantly lower memory usage in certain situations, see the pdfHTML example linked below for more information.
- increased SVG support. Now iText is able to correctly process SVG paths with missing L/l operators, as per the "moveto" command specification.
- clearer error messages for many cases.
In this release of our intelligent data recognition add-on, we've further improved the table data extraction capabilities. From now on, pdf2Data is able to recognize tables which use ASCII horizontal line symbols as separators.
Surprisingly, such ASCII-made tables are still quite common even today, so if you'd like to learn more about this feature (or you don`t know your ASCII from your elbow) please refer to the example section below. Otherwise, just update pdf2Data to get this functionality.
Additionally, you'll get the possibility to extract additional metadata (fontname, fontstyle, fontsize, and fontcolor) as data field recognition properties.
In this new version of our add-on for advanced typographic features and global languages, we fixed two esoteric, yet rather annoying bugs.
The first one could occur when rendering a string for specific font sizes, where the anchor delta for the last glyph was calculated incorrectly.
The second was related to diacritic marks in the "TH Sarabun New" font which is the official font for the Thai government. Previously, these marks were rendered higher than they should have been.
We are really proud of our job for the pdfHTML 3.0.4 release, since it brings quite a few improvements and raises pdfHTML to a new level for the creation of PDFs from HTML templates.
The most important feature that has been added is the initial support of the CSS Flexible Layout Box module. This module is currently very popular, as it makes it much easier to design a flexible responsive layout structure without using floats or positioning.
While pdfHTML isn`t able to handle all properties defined in this module quite yet, we expect to widen the number of supported ones in the coming releases. You can refer to the examples section to get insight into how flexbox can be already used for PDF creation.
Another great improvement is performance-related, where the processing of extremely large block elements containing hundreds of children and occupying dozens of pages in the output file takes a few times less memory and computing resources for now. Of course, we have an example for this linked below as well.
Besides that, a few annoying bugs have been fixed such as the handling of percentage width values for inline-block elements, or rendering cells distributed between two pages of the output PDF.
The icing on the cake is we've also made improvements to pdfHTML's logging. So now, it will make it much easier to find unsupported styles in your HTML files, since all unsupported flex-related CSS properties and unsupported property values are now recorded.
We continue to improve pdfOptimizer, our newest iText 7 add-on designed to reduce the file size of your PDFs using compression and proprietary optimization strategies to achieve best-in-class performance.
This second release introduces a new optimization strategy, the so-called subsetting of fonts. In a nutshell, it gives pdfOptimizer the possibility to remove unused symbols from the fonts embedded in PDF files, so the size of documents with small amounts of text can be significantly reduced.
This release of pdfRender, our add-on that lets you generate images from PDF, brings a lot of performance improvements and few bugfixes that make PDF to image conversion faster and smoother than ever before. BMP and PNG conversion have been significantly improved, and revisions to the processing of Type1 fonts have reduced memory allocation.
This is the first release of our redaction tool pdfSweep for a while, but we`ve been busy and have fixed two bugs:
- in .NET pdfSweep could cause an exception when dealing with images using an indexed color space, where it would try to fill the redacted area with the incorrect color. It will now pick a color that exists within the palette.
- editing of content streams could cause Acrobat Reader to fail when reading the document.
In this release, we have fixed a JS-related bug that, while it might be considered minor, often throws unexpected exceptions when processing XFA.
If you need to process XFA documents, we have a related blog post that may be interesting to you: How to modify XFA documents before flattening.
We always release our PDF debugging tool RUPS together with iText 7 Core, as it is one of the most important dependencies (so all the goodies in Core also make their way into RUPS).
iText 7 Documentation
For more detail on all of the above improvements you can head over to our Knowledge Base for the full iText 7.1.15 release notes. In addition, you can find installation guides, FAQs, clarifying code examples and even fully-fledged ebooks there.
Shout-out to our contributors
Last but not least; huge amounts of kudos to borislucas-dev, trumpetinc, and dajoropofor their efforts in making iText even better. Thank you for all your pull requests; we feel extremely proud to still have so many active contributors, even after 21(!) years existence as an open-source product.
If you’d also like to contribute to iText’s source code, we encourage you to join our community.