iText

Release iText Core 9.8.0

As always, we’ve made the Core release notes into a showcase PDF document. Not only does it conform to the latest PDF/UA-2 standard for accessible PDF documents, it’s also digitally signed and has source code and resources required to recreate the document yourself embedded. Have fun!

File

Modified

release_notes_9.8.0-pkcs11-signed.pdf

README.pdf

Release date:

We are pleased to announce the release of iText Core 9.8.0. This release introduces support for vertical text layout and CJK writing modes, radial gradients and SVG mask support, and advanced SVG stroke properties. In addition, we’ve introduced a higher-level transformation API with more user-friendly affine transform capabilities in the Layout module, enhanced footnote navigation, critical security updates across key cryptographic and utility dependencies, and substantial performance and standards-conformance improvements.

Vertical Text Layout & CJK Writing Modes

iText Core 9.8.0 introduces initial support for vertical writing modes in the Layout module, primarily aimed at CJK (Chinese, Japanese, and Korean) layouts. Whilst the implementation is not yet complete, the API has been finalized and supports line breaking, baseline adjustments, right-to-left vertical progression, accessibility tagging, and improved sizing behavior in tables, flex containers, inline blocks, and text renderers.

The current implementation also covers word and character spacing, text alignment, overflow handling, text decorations, and text-rise behavior, with related pdfHTML alignment for CSS vertical writing modes.

Layout, Rotations & Transformations

The Layout module now includes more user-friendly affine transformation capabilities, with simplified API options for Property.TRANSFORM (Java/.NET) . The release also resolves layout issues affecting rotated table cell sizing, content offsets, rotated page coordinates, and relative image positioning with borders.

Advanced SVG & Graphics Capabilities

This release expands SVG and graphics fidelity with radial gradient support across SVG, Kernel, and Layout, SVG <mask> support via PDF soft masks, advanced stroke properties such as stroke-linecap, stroke-linejoin, and stroke-miterlimit, URL-based stroke references with fallbacks, and fixes for nested clip paths with translations.

Markdown to PDF GitHub Action

Related to these SVG improvements, we’ve been working on providing Markdown-to-PDF via GitHub Actions. We’re proud to announce itext-markdown2pdf is now available on the GitHub Marketplace!

This action is available free-of-charge and is intended to help open-source developers convert Markdown in public repositories into accessible, standards-compliant PDF/UA-2 (and WTPDF) documents within their CI/CD workflows.

Accessibility is important to us, and we’ve worked hard to simplify creating documents accessible to everyone. With PDF/UA-2 as the latest and greatest standard for accessible PDFs, we offer this as a gift to the open-source community to help popularize it.

We’d love you to try it out for yourselves, and feedback on possible improvements is welcomed.

Footnotes & Margin Enhancements

Footnotes are now easier to navigate in digital documents thanks to bi-directional clickable links between anchors and footnote bodies. This release also improves footnote numbering with footer and page-break handling, font resolution for footnote anchors, and margin handling during document relayout.

Security and Stability

iText Core 9.8.0 includes important security and stability updates across cryptographic, JSON, HTTP, and logging dependencies, including IV generation fixes, Bouncy Castle FIPS, Bouncy Castle standard libraries, Jackson Databind, Apache HttpClient, and Logback. It also improves PDF/A and PDF/UA validation, text extraction performance, circular reference protection, digital signature revision validation, custom font link handling, font resource licensing clarity, and runtime compatibility for .NET 10 and GraalVM JDK 24/25 environments.

Pull Requests

We’d like to thank netliomax25-code for their fix to improve CSS ~= attribute selector matching in pdfHTML and styled-xml-parser by properly escaping selector values before pattern matching.

Bug Fixes and Miscellaneous

Beyond the headline features, iText Core 9.8.0 includes a broad set of fixes and maintenance updates focused on performance, standards conformance, document stability, packaging quality, and developer experience.

  • Performance and resource handling: Restored Standard 14 font caching in text extraction to address a performance regression, added circular form XObject protection in canvas processing and cleanup workflows, and optimized conditional logging to avoid unnecessary string formatting when log levels are disabled.

  • PDF/A, PDF/UA, and validation improvements: Improved validation for PDF/A documents with multi-stream page contents and refined glyph validation for substituted glyphs without Unicode mappings.

  • Digital signing and document integrity: Corrected revision counting in digital signature validation to avoid over-counting document processing events and improve validation reliability.

  • Layout and rendering fixes: Fixed issues involving custom font links, relative image positioning with borders, rotated table cell sizing, footnote numbering with footer and page-break handling, and margin handling during relayout.

  • Packaging, runtime compatibility, and documentation: Improved .NET 10 and GraalVM JDK 24/25 compatibility, centralized .NET build configuration, fixed licensekey and iText Core tests for .NET 10, and expanded public API documentation for the io module.

  • Compliance and dependency hygiene: Replaced legacy bundled font resources with clearly licensed equivalents, updated related notice information, and improved GraalVM WebP test stability.

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

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.

Also, don’t forget to check out the release-related examples below, as well as the updated Core add-ons in the iText Suite we’ve released this time:

iText Suite 9.8 Releases

Downloads

Changelog

New features

  • DEVSIX-9388, DEVSIX-10118, DEVSIX-10136, DEVSIX-10137, DEVSIX-10155, DEVSIX-10161, DEVSIX-10162, DEVSIX-10163, DEVSIX-10166, DEVSIX-10167, DEVSIX-10168, DEVSIX-10175, DEVSIX-10183, DEVSIX-10190 – Initial vertical text layout & CJK writing modes

  • DEVSIX-9377, DEVSIX-10102, DEVSIX-10150 – Higher-level affine transformations in the Layout module

  • DEVSIX-4396, DEVSIX-10037 – Radial gradient support across SVG, Kernel, and Layout

  • DEVSIX-2378 – Converting SVG <mask> elements into PDF soft masks

  • DEVSIX-10025, DEVSIX-10031 – Bi-directional clickable links between footnote anchors and bodies, with custom styling support for footnote anchors

Improvements

  • DEVSIX-2623, DEVSIX-10156, DEVSIX-10180 – Vertical text formatting, alignment, overflow, text-rise, and CJK font metrics

  • DEVSIX-2258, DEVSIX-4857, DEVSIX-10171 – SVG stroke properties, URL stroke references, and nested clip paths

  • DEVSIX-5334, DEVSIX-8934, DEVSIX-5029 – Rotated layout handling for table cells, offsets, and page coordinates

  • DEVSIX-10034, DEVSIX-10101 – Margin handling during document relayout

  • DEVSIX-10100 – Font resolution for footnote anchors

  • DEVSIX-10192, DEVSIX-10142, DEVSIX-10174, DEVSIX-10165, DEVSIX-10172, DEVSIX-10170, DEVSIX-10203, DEVSIX-10169, DEVSIX-9733, DEVSIX-6172 – Security updates for IV generation, Bouncy Castle, Jackson Databind, HttpClient, and Logback

  • DEVSIX-10113, DEVSIX-10092, DEVSIX-10026, DEVSIX-10179 – .NET 10 / GraalVM compatibility, and io API documentation

  • DEVSIX-9682, DEVSIX-9683 – Font compliance updates and notice file cleanup

  • DEVSIX-5525 – Conditional logging optimization to avoid unnecessary string formatting when log levels are disabled

Bug fixes

  • DEVSIX-10112 – Restoring Standard 14 font caching in text extraction

  • DEVSIX-3608 – Stack overflow protection for circular form XObjects

  • DEVSIX-10089 – Multi-stream PDF/A validation syntax boundary fix

  • DEVSIX-10160 – Substituted glyph validation via direct glyph-code lookup

  • DEVSIX-10177 – Signature revision count accounting

  • DEVSIX-10130 – Custom FontProvider handling on Link elements

  • DEVSIX-10019 – CSS ~= selector value escaping

  • DEVSIX-10094 – Footnote numbering with footer and page-break handling

  • DEVSIX-1022 – Relative image positioning with borders


Deprecation of Older iText Versions

We're taking this opportunity to announce End of Life dates for deprecated iText versions. EOL for iText 7.1 was April 2025, and iText 7.2 was October 2025. As for iText 8.0, this will reach EOL in October 2026.

EOL for these versions means they will transition to maintenance mode, and only receive security patches. However, just as with iText 5 we will continue to provide support for our customers. Even though iText 5 has been in maintenance mode since 2016, we regularly release new versions to address CVEs and other security-related bugfixes. See CVEs or the iText 5-specific CVEs page for more information.



eBooks

Installation Instructions

Examples (latest ones)

FAQ (latest ones)