Repository navigation
fix(deps): update dependency com.itextpdf:itext-core to v9.8.0 - #203
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
9.7.1→9.8.0Release Notes
itext/itext7 (com.itextpdf:itext-core)
v9.8.0: iText Core/Community 9.8.0Compare Source
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. 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, andLayout, SVG support via PDF soft masks, advanced stroke properties such asstroke-linecap,stroke-linejoin, andstroke-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.
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 GraalVM JDK 24/25 environments.
Pull Requests
We’d like to thank Netliomax25 for their fix to improve CSS
~=attribute selector matching in pdfHTML andstyled-xml-parserby 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 GraalVM JDK 24/25 compatibility, and expanded public API documentation for the
iomodule.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
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-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 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
Contributors
We’d like to shout out the following contributors for this release:
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.