It has been four years since we released iText 7.1.0 which saw the addition of support for the then new PDF 2.0 improvements and features, such as AES-256 encryption, Unicode-based passwords, the new tagged PDF tags set and much more. Apart from that though, it also introduced improved .NET logging capabilities, revisions to the license key library, and a number of breaking changes, since the changes and improvements to the API meant that it was not possible to preserve full backwards compatibility with iText 7.0.
For version 7.2 of iText we don't have a brand-new PDF specification to support, but there are a number of similarities with the 7.1 release. For example, as a result of moving to version 4.6.1 of the .NET Framework we can now make use of the built-in logging capabilities of this version, and some redundant and deprecated methods have been removed from the API. Of course, this does mean there are some breaking changes with 7.2, but these are fairly minor. As with the 7.1 release, we've also bumped the release numbers of the iText 7 add-ons to catch any breaking API changes.
Probably the most significant change for our commercial customers is the introduction of a new Unified License Mechanism which will apply to all products in the iText 7 Suite from this version onwards, and also to future versions of iText DITO. The primary benefits are that it will allow volume license customers to easily check and keep track of their usage.
Let's take a look at all the releases in more detail.
iText 7 Suite Releases
As noted above, our .NET users should be aware that 7.2 bumps the minimum supported version of the .NET Framework from 4.5 to 4.6.1. However, this means they can benefit from the newer
Microsoft.Extensions.Logging framework, rather than the previous
Common.Logging library in previous versions. We expect this to be a popular change for our .NET customers, since this framework is more modern, flexible, and secure.
In addition, we've made some API changes to remove redundant or deprecated API methods, fixed a few bugs and made some significant improvements to the codebase. Some of these changes may not yet be visible though will be important for the future development of iText 7 Core and its add-ons. However, there are still a few nice enhancements to Core which will be immediately apparent:
- There is an update to the embedded jsoup HTML parser which we use for SVG processing. Version 1.14.1 includes a number of security and stability fixes, but most importantly it features improved processing of SVG tags.
- iText will now produce clearer exception messages when a PDF's Outline Dictionary violates the specification.
- An interface for typography logic has been implemented at the layout level, which will also benefit pdfHTML and pdfCalligraph.
- GPOS lookup type 1 subtype 2 and type 8 has been implemented. See the pdfCalligraph release notes for more information and a code example.
Important: this release also includes a fix for a vulnerability which was identified in the
CompareTool functionality, where it was possible to abuse some functionality in GhostScript to inject arbitrary parameters. For convenience, we've also addressed this vulnerability in an iText Core 7.1.17 maintenance release.
Not too much to talk about here, though pdf2Data does of course benefit from all the bugfixes and stability improvements to Core.
Besides the new license mechanism support and improved .NET logging capabilities, we've also added support for two more types of the Glyph Positioning table (GPOS), which allows better control over sophisticated glyph positioning for complex writing systems. More details are in the release notes, along with a code example demonstrating the improvements.
In addition, several bugs relating to RTL text have been resolved. This should prove to be useful for languages such as Arabic or Hebrew.
As mentioned, the jsoup HTML parser has been updated to version 1.14.1 which means case-insensitive SVG tags will be processed correctly, and we've removed some deprecated and redundant API. In addition:
- Closing an empty layout document will no longer produce an exception.
- A bug in the
ParagraphRenderthat could result in an infinite lop has been fixed.
- As usual, you can expect a bunch of bug fixes and further performance improvements.
No significant changes to pdfOCR this time, but it does of course benefit from the updates to iText 7 Core itself, such as the logging improvements for .NET. We've also cleaned up the API and added support for the new Unified License Mechanism.
A quick update for our latest add-on which allows developers to programmatically convert MS Office documents into fully ISO-compliant PDF files. Aside from support for the new license mechanism, we've improved line space calculation during conversion and fixed a couple of bugs.
Apart from the new license mechanism and .NET logging changes, pdfOptimizer benefits from the updates to iText 7 Core, such as a fix where streams could remain open following an exception.
Aside from the new licensing mechanism support and removal of some deprecated API there are no major changes this time round. However, you should see the benefit of some performance and stability improvements along with a couple of bug fixes.
This update to the pdfSweep redaction tool adds support for the new license mechanism and removes redundant API, but also addresses the
CompareTool vulnerability and resolves cases where streams could be left open after an exception.
A couple of bug fixes in this release relating to overlapping content and dynamically resolving field colors. Plus, the .NET logging improvements and support for the Unified License Mechanism are included.
To wrap up this release, we have of course updated our PDF debugging tool RUPS, and as usual it benefits from all the improvements to iText 7 Core.
Contributions and pull requests
We always welcome contributions and pull requests from the community. If you have any, let us know.