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!

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.

Coming soon: Markdown to PDF

Related to the SVG improvements, we’ve been working on providing Markdown-to-PDF conversion via GitHub Actions. It isn’t part of this release, but we’ll share more very soon.

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)