github itext/itext-java 9.4.0
iText Core/Community 9.4.0

15 hours ago

For our fourth and final iText Core release of 2025 we’re introducing advanced page resizing functionality for more effective merging and manipulation of PDF documents with varying page sizes.

We’ve also been working on extending the new EU eIDAS Trusted Lists feature to support validation against specific signature profiles.

In addition, we’ve enhanced our flex layout support within the layout module for use with the pdfHTML add-on.

Advanced Page Resizing

This release introduces advanced page resizing functionality, allowing users to merge and manipulate PDF documents with varying page sizes more effectively. This was based on a customer request who was using similar functionality in iText 5. However, the way iText 5 did this was relatively unsophisticated, and ran into problems with tagged documents and different content types.

This new implementation addresses scenarios such as scaling content between different page formats (A0, A1, US Letter, etc.), maintaining aspect ratios, and handling annotations, patterns, gradients, and form fields during resizing. The result is a more flexible and reliable toolkit for document assembly and transformation, ensuring that content integrity and layout are preserved across diverse PDF workflows.

Signature Profiles Support

This focuses on enhancing digital signature capabilities in iText Core by introducing support for signature profiles. This feature enables an easier way to ensure that digital signing and validation processes meet the regulatory and compliance requirements for specific regions. As a demonstration, we’ve updated the LotlSimpleSignatureValidation sample (Java/.NET) on GitHub to show off the new QualifiedValidator class. This determines if a given certificate/signature meets the regulatory standards to be “qualified”, which is vital for high-trust electronic transactions.

We’ve also made a change to LOTL validation reports to eliminate multiple successful validation messages during the process, along with some general improvements to LOTL caching and validation.

Extending Flex Layout Support

This release significantly improves the flex layout support in the core Layout module. Since this primarily affects pdfHTML, you’ll find more details in the release notes for pdfHTML 6.3.0.

Pull Requests

A big thank you goes to kpldvnpne for suggesting a fix for the PdfOutline.removeOutline function where the parent outline was also removed after removing a child. As noted in the PR, our implementation goes a little further by adding tests, and maintaining the Count value when an outline is removed.

Bug Fixes and Miscellaneous

PDF image and color depth handling has been enhanced when extracting images There are also accessibility and structure improvements in generated/tagged documents, and error messaging and recovery for malformed or edge-case PDFs is improved.

Other Stuff

As always, you can see the Changelog below to see the full rundown on what’s new in Core, and details of other improvements and bug fixes for this release.

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.

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-9287: Be able to resize pages
  • DEVSIX-9419: Signature profiles

Improvements

  • DEVSIX-9288: Support more of flexlayout

Bug fixes

  • DEVSIX-2454: The color depth 2 is not supported
  • DEVSIX-2941: Extracted Indexed monochrome PDF image image gets color inverted
  • DEVSIX-2943: The color depth 4 is not supported
  • DEVSIX-3634: When several Unicode characters map to a single glyph in a font, iText creates /ToUnicode mapping mapping only to one Unicode which distorts the original text on text extraction
  • DEVSIX-3937: GlyphLine substitutions override font program's glyph unicode mapping
  • DEVSIX-9128: FontProgram.getSubset is not thread safe
  • DEVSIX-9202: PR: Fix bug: dont remove parent just because children is empty
  • DEVSIX-9269: Spike: PR: Fix for NotSupportedException if AreaBreak is inside a flex container
  • DEVSIX-9457: Fix NPE due to null color space while identifying image type

Contributors

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

Don't miss a new itext-java release

NewReleases is sending notifications on new releases.