Skip to content

iText Core/Community 9.7.0

Latest

Choose a tag to compare

@AnhelinaM AnhelinaM released this 08 Jul 08:42
9.7.0

iText Core/Community 9.7.0

Our third iText Core release of 2026 brings some significant new capabilities. We've added support for the WebP image format, introduced dynamic page margins and footnotes to the layout module, and strengthened decompression bomb protection. We've also improved append mode reliability and updated several security-related dependencies.

WebP Image Format Support

iText now natively supports the WebP image format, developed by Google to provide superior lossless and lossy compression for web images. This new capability allows you to integrate high-quality, highly compressed modern web images directly into your PDF workflows, significantly reducing file sizes without sacrificing visual fidelity.

Our implementation uses the TwelveMonkeys ImageIO library for WebP decoding on Java and is delivered as a separate, optional module: webp-image-support. When the module is present on the classpath, iText Core automatically detects and processes WebP images without requiring any additional configuration.

Capabilities

  • Automatic WebP image type detection via ImageTypeDetector
  • Lossy and lossless WebP image decoding
  • ICC color profile handling for accurate color reproduction
  • Transparency (alpha channel) support
  • Base64-encoded WebP images in HTML/SVG sources

Notes/Limitations

  • For animated WebP images only the first frame will be rendered.
  • The rotation property is not (yet) supported, but browsers currently ignore this anyway.
  • The module is not currently supported on Android, due to the javax.awt and imageio decoding libraries not being available.

Dynamic Margins & Footnotes

We have completely overhauled the way iText handles complex document layouts. This not only allows developers to adjust page margins on the fly, but also includes footnote support with automatic numbering, customizable footnote containers, and intelligent layout logic that ensures footnote anchors and text remain perfectly positioned.

To achieve this, we have introduced a powerful new framework for managing complex document layouts. This overhaul allows developers to adjust page margins on the fly using the new SectionBreak element.
Additionally, we’ve launched comprehensive footnote support, enabling automatic numbering, customizable footnote containers, and intelligent layout logic that ensures footnote anchors and text remain perfectly positioned.

Signatures and Validation

We’ve resolved critical issues related to Append Mode, ensuring that incremental updates to PDF documents are more reliable. This includes better tracking of modified objects and fixing stream inconsistencies, allowing for a more robust document history and preservation of digital signatures.

Page rotation handling for signature layers is also improved, and we fixed some edge-case crashes during form flattening.

To ensure uninterrupted support for digital signature validation, we have released a new version of our EU Trusted Lists resources. This update incorporates the recently updated European Journal sources, maintaining compliance with the latest eIDAS standards.

Security and Stability

iText’s protection against "decompression bombs" inside PDF streams has been enhanced, particularly for single /FlateDecode streams and image-based decompression bombs. The change applies a 100× growth factor limit to all streams by default. Note that the existing API to override protection remains in place, in cases where edge cases may trigger false positives. However, this should be extremely unlikely for real-world uses cases.

Additionally, we have implemented a high-level safety mechanism to detect and terminate infinite layout loops, and the Jackson JSON dependency for Java has been bumped from 2.21.2 to at least 2.22.0 to resolve CVE issues.

Pull Requests

For this release we've incorporated two pull requests. The first is from iText alumni Dmitry Radchuk to add support for the :is() and :where() selectors for the styled-xml-parser module utilized by the pdfHTML add-on. Therefore, full details can be found in the pdfHTML 6.3.3 release notes.

The other pull request comes from Netliomax25 who proposed a way to increase security in iText’s PDF/UA accessibility checks, specifically for rich text inside annotations. The fix swaps in a hardened XML parser to block potential XML External Entity injection attacks.

Bug Fixes and Miscellaneous

A customer-reported NullPointerException during form field flattening was fixed. The issue occurred when a signature field contained an invalid appearance entry (a non-stream object declared as a Form XObject). iText now logs a warning and skips the invalid appearance instead of crashing.

A PDF/A-2 conformance validation bug was fixed where PdfA2Checker.checkSeparationCS incorrectly threw an exception when two Separation color spaces with different names were used. The checker was not properly comparing the color space names, treating all Separation spaces as having the same name. This fix also applies to PDF/A-3 and PDF/A-4 conformance checking.

We added a high-level mechanism to prevent infinite loops in the layout module. In rare edge cases involving complex combinations of keep-together, forced placement, and nested containers, layout could enter an infinite loop. The engine now detects such situations and forces placement after a configurable number of iterations.

The Jackson dependency has been updated to version 2.22.0 to stay current with security patches.

An informational warning is now logged when text requires the pdfCalligraph add-on for correct rendering but pdfCalligraph is not available. This helps developers identify rendering issues with complex scripts early in development.

Other Stuff

If you use iText for digital signing, you may be interested in the Digital Signatures Hub which contains a ton of useful resources and examples.

Don’t forget that in addition to the resources on our Knowledge Base, on our GitHub you can find a ton of useful up-to-date samples in the following repos:

Java

.NET

NOTE: If you want to create ZUGFeRD/Factur-X-e-invoices with iText Core, we have both Java and .NET code samples available targeting the current ZUGFeRD/Factur-X specification. They demonstrate how to embed the XML invoice data and add the metadata required for conformance. Read this article to learn more about ZUGFeRD/Factur-X, and using these code samples to create EN 16931-compatible e-invoices.

Bear in mind that our master branch contains samples for the current stable release, while the default develop branch is for the bleeding edge commits towards the next release.

New features

  • DEVSIX-9369 – Support the WebP image format in iText
  • DEVSIX-9375 – Allow adjusting margins for pages after they've been initialized (dynamic page margins and footnotes)

Improvements

  • DEVSIX-10016 – Improve handling of decompression bombs inside PDF streams with single /FlateDecode filter
  • DEVSIX-9276 – Handle page rotation for signature appearance layers set by the user
  • DEVSIX-9919 – Release new version of eu-trusted-lists-resources
  • DEVSIX-9923 – Update Macedonian trust list URL
  • DEVSIX-9979 – Improve LOTL transition period warning
  • DEVSIX-9922 – Update BouncyCastle on Java to 1.84+ (CVE-2026-5588)
  • DEVSIX-10083 – Bump Jackson dependency to 2.22.0
  • DEVSIX-9255 – Let the user know that pdfCalligraph is required to process certain scripts
  • DEVSIX-9960 – High-level mechanism to prevent infinite loops in layout

Bug fixes

  • DEVSIX-10007 – PDF/A validation error when two Separation colors are added
  • DEVSIX-9936 – NullPointerException during form field flattening
  • DEVSIX-9777 – Missing /Subtype /Form in stream when using append mode
  • DEVSIX-9881 – Fix WTPDF checks when both conformance levels are requested
  • DEVSIX-9916 – When checking for WTPDF conformance in XMP metadata only first element checked
  • DEVSIX-9977 – Embedded file attachments: deferred stream consumption & orphaned PdfStream on duplicate names

Contributors

We’d like to shout out the following contributors for this release: