Skip to content

Bump QuestPDF from 2025.4.0 to 2026.8.0 - #30

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/nuget/forge.api/main/QuestPDF-2026.8.0
Open

Bump QuestPDF from 2025.4.0 to 2026.8.0#30
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/nuget/forge.api/main/QuestPDF-2026.8.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 30, 2026

Copy link
Copy Markdown

Updated QuestPDF from 2025.4.0 to 2026.8.0.

Release notes

Sourced from QuestPDF's releases.

2026.8.0

🚀 This release is dedicated to performance, parallelism, and use of available resources. 🚀

Documents render faster, allocate a fraction of the memory they used to, and scale across all available CPU cores. No code changes are required — existing documents benefit simply by upgrading the package.

The numbers below were measured on a MacBook Pro M5 (18-core CPU), using the invoice document from the Getting Started tutorial, across various levels of parallelism, over a sample of 5,000 documents.

  • Reduced allocated memory amount and allocated object count by 85%.
  • Improved single-threaded performance by around 15%.
  • Substantially improved parallel scaling: throughput previously peaked at 4 threads and flattened beyond that, and now scales with available CPU cores — with around 4x better scaling.
  • Improved performance and scalability for text-heavy documents.
  • Improved cache usage (mainly for fonts) and significantly reduced locking.

✨ Other improvements:

  • Added support for soft hyphens: the library does not hyphenate text automatically, but soft hyphen characters (U+00AD) are now correctly interpreted as optional break points and rendered as hyphens when a line breaks.
  • Added the TextStyle.BreakAnywhere API, which allows a text span to break between any two characters, not only at word boundaries such as spaces or hyphens. Useful for content without natural break points, e.g. long URLs, identifiers, hashes, or file paths.
  • Improved the visual position of the underline and double underline text decorations.
  • Improved reliability of the Companion App integration: document previews are now refreshed from a consistent snapshot, and rendered pages are transferred more efficiently.
  • Increased the zlib compression level used for PDF generation from 1 to 3, which produces significantly smaller files (for text-heavy documents) with a minimal increase in generation time.
  • Updated the Skia native dependency to version m152.

⚠️ Breaking change

XPS generation has been removed. The format was supported only on Windows, had several rendering issues that could not be reliably resolved, and had negligible adoption. The GenerateXps and GenerateXpsAndShow methods are still present, but calling them now results in a compilation error, and code compiled against an earlier version throws an exception at runtime. Please use PDF generation instead.

2026.7.3

  • Breaking change: The Rotate API now rotates elements around their center instead of the top-left corner. Center-origin rotation is the expected behavior in virtually all use cases.
  • Behavioral change: Generated images now use a white background by default, so the output matches how the document appears in a PDF viewer. Previously, PNG and WEBP images had a transparent background. To restore the old behavior, enable ImageGenerationSettings.UseTransparentBackground (applies only to formats supporting transparency: PNG and WEBP).
  • Automated table semantic tagging is now applied whenever a Table element is placed inside a SemanticTable container, even indirectly. Nested semantic captions are now supported as well.
  • Image elements now emit the /BBox attribute, improving PDF/UA-1 compliance with validators that require it.
  • Improved the stability and speed of the QuestPDF Companion integration. The integration now requires .NET 8 or newer.
  • Improved the developer experience of the GeneratePdfAndShow and GenerateXpsAndShow methods.
  • Deprecated AsSemanticHorizontalHeader in favor of SemanticHorizontalHeader for API naming consistency.
  • Deprecated RotateLeft and RotateRight in favor of RotateLayoutCounterclockwise and RotateLayoutClockwise, which better describe what these methods do.

2026.7.2

  • Fixed a rare Windows x64 concurrency issue where generated PDF documents appeared correct in viewers, but selected and copied text was corrupted.
  • Improved text rendering representation to resolve rare compatibility issues in certain PDF viewers that could cause incorrect results when selecting or copying text.
  • Improved compatibility for complex glyphs, such as ligatures, by annotating them with the /ActualText tag. This improves text selection, copying, extraction, and screen-reader accessibility. Ligatures remain disabled by default.
  • Added support for the AllowModification permission in DocumentOperations when encrypting PDF documents with 128-bit or 256-bit keys.
  • Added minor fixes and expanded test coverage for the DocumentOperations API.

2026.7.1

Improved performance

PDF generation is now significantly faster. The Skia native dependency has been recompiled with speed-oriented optimizations (favoring performance over binary size) and with SIMD instructions enabled.

The impact depends on document content and platform. For example, generating image-heavy documents that require image rescaling can be several times faster on Windows x64 🎉

Note: this change slightly increases the size of the native dependency by around 20%.


Continuous performance monitoring

We have also built a solid foundation for measuring library performance going forward. A new GitHub Actions workflow benchmarks QuestPDF across all supported operating systems, processor architectures, and .NET releases.

This infrastructure helps us ensure that performance remains stable and consistent across all platforms, and allows us to detect regressions early — before they ever reach a release.

2026.7.0

  • Updated licensing terms and conditions to version 3.0, including the removal of the developer seat limit for all paid licenses (details: https://www.questpdf.com/pricing).
  • Added full support for .NET Native AOT and trimming.
  • Added and improved warning messages related to library configuration.
  • Fixed a rare rendering issue where the footer was placed incorrectly when the page content was empty.

2026.6.1

  • Updated the Skia native dependency to M150.
  • Improved text rendering stability when handling an excessive number of whitespace characters.
  • Improved the failure message shown when the library runs on an unsupported platform (e.g., Android, iOS, or WASM).
  • Improved platform compatibility checks and introduced more advanced fallback mechanisms.
  • Improved diagnostics for missing font glyph exceptions.
  • Improved PDF output consistency of section links by avoiding name escaping and removing unnecessary documentId prefix.
  • Made the Image.Size property public.

2026.6.0

  • Substantially revised the QuestPDF legal documents to better support enterprise procurement and compliance requirements and to define usage terms more clearly.
  • Introduced native support for Windows ARM64 (win-arm64) environments.
  • Improved compatibility with older Linux distributions (glibc 2.28 and newer).
  • Reduced the NuGet package size by optimizing native dependencies.
  • Renamed the TranslateX / TranslateY methods to OffsetX / OffsetY to improve discoverability.
  • SVG rendering improvements:
    • Prevented zero-width strokes from being rendered as hairlines, aligning behavior with the SVG specification.
    • Added support for embedded Base64 images that use the modern href attribute instead of xlink:href.
    • Added support for the #RGBA and #RRGGBBAA color formats.
    • Added support for the transparent named color.
  • Fixed PDF bookmark titles so they include only text from the associated paragraph, excluding the alternative text of images.
  • Fixed SectionLink behaving incorrectly when target Section is placed in page header.
  • Updated the Skia native dependency to version m149.
  • Updated the qpdf native dependency to version 12.3.2.
  • Modernized the build system for native dependencies, including how QuestPDF-specific patches are applied.
  • Updated all GitHub Actions workflows to use standard runners, reducing costs and making it easier for everyone to contribute to the project.

2026.5.0

  • Fixed a bug where Table elements with RowSpan could render incorrectly or break when spanning across pages.
  • Fixed visual rendering artifacts that could appear in complex or very large paragraphs.
  • Improved error message when native dependency versions are mismatched — the error now includes step-by-step guidance for updating manually copied native files.
  • Updated the underlying Skia native dependency to version m146.

2026.2.4

  • Fixed a bug where using Page.MinSize() or Page.MaxSize() could produce unexpected results
  • Added more helpful validation messages for minimum and maximum size constraints in the Constrained element
  • Improved the welcome message with a clearer explanation of the library license

2026.2.3

  • Fixed visual regression when rendering complex borders

2026.2.2

  • Updated the Skia native dependency to improve compatibility with the win-x86 runtime

2026.2.1

  • Fixed an issue where the DocumentOperation API could throw an exception when a warning occurs
  • Improved error handling in DocumentOperation by including file paths in exception messages

2026.2.0

  • Updated the Skia native dependency to the m144 version.

2025.12.4

  • Enhanced layout debugging algorithms for more accurate error detection.
  • Improved representation of layout root causes in the Companion app.
  • Fixed SVG image scaling when the viewBox attribute is not specified.
  • Fixed SVG incorrect scaling of images that use percentage units.

2025.12.3

  • Improved handling of semantic structure and artifact context, resolving rare edge cases
  • Fixed an issue where element selection could appear blurry in the QuestPDF Companion App

2025.12.2

Fixes:

  • Fixed semantic structure handling in the Dynamic element
  • Fixed semantic structure handling in the Lazy element

Improvements:

  • Updated package icon
  • Updated NuGet package metadata (readme and description)
  • Revised welcome message to clarify licensing options and improve guidance
  • Updated third-party license attributions (removed ICU, added libgrapheme)

2025.12.1

  • Fixed an issue where merged documents rendered incorrectly for the second and subsequent documents.
  • Fixed an issue where the Table layout could fail to render all items in certain row-span scenarios.
  • Fixed semantic tagging in advanced layouts (e.g., MultiColumn) and refactored canvas-related code.

2025.12.0

Features:

  • Added support for the .NET 10 SDK.
  • Added support for semantic tagging.
  • Added support for bookmarks via header-level semantic tags.
  • Added support for the following conformance standards: PDF/A-2b, PDF/A-2u, PDF/A-2a, PDF/A-3b, PDF/A-3u, PDF/A-3a, and PDF/UA-1.

Future-proofing:

  • Introduced automated standard conformance testing using veraPDF.
  • Introduced automated ZUGFeRD conformance testing using Mustang.

Bug fixes:

  • Fixed a bug where row-span calculation logic in the Table component could cause infinite document generation.
  • Fixed an issue where Dynamic components rendered incorrect content when placed inside a MultiColumn layout.
  • Fixed missing input parameter validation for Hyperlink, Section, and SectionLink methods.
  • Fixed an issue where Hyperlinks in the page footer broke accessibility conformance.

Maintenance:

  • Updated the Skia native dependency to version m142.
  • Increased test coverage and test quality.
  • General code cleanup.

2025.12.0-alpha4

  • Simplified the Fluent API.
  • Made minor semantic adjustments.
  • Added a conformance test suite based on the Mustang project (for ZUGFeRD).
  • Performed code refactoring and cleanup.

2025.12.0-alpha3

  • Ported all changes from the 2025.7.3 release.
  • Updated the Skia native dependency to version m142.
  • Added experimental support for the following conformance standards: PDF/A-1a and PDF/A-1b.
  • Improved automated tagging, which is now enabled only when a relevant conformance standard is active.
  • Created a conformance test suite based on the VeraPDF project.

2025.12.0-alpha2

  • Added semantic auto-tagging for paragraphs.
  • Enhanced auto-tagging feature for tables by supporting more complex cases where cells are spanning multiple rows or columns.
  • Adjusted semantic meaning of MultiColumn spacer to be an artifact.
  • Adjusted semantic meaning of contents that repeats on pages by marking the first occurrence as content, and repetitions as artifacts. This change applies to the Repeat, Decoration and Page Header/Footer elements.
  • Fixed semantic handling of background and watermark page layers.
  • Fixed adding content to the semantic tag tree if it is part of the artifact.
  • Improved visual representation of SemanticTags and ArtifactTags in the Companion App.

2025.12.0-alpha1

  • Ported all changes from the 2025.7.2 release.
  • Added support for the following conformance standards: PDF/A-2b, PDF/A-2u, PDF/A-2a, PDF/A-3b, PDF/A-3u, PDF/A-3a, and PDF/UA-1.
  • Improved the semantic structure of links (both external hyperlinks and internal links to named destinations) for better compatibility with PDF/UA-1.
  • Corrected semantic tagging of decorative elements such as shadows, backgrounds, borders, and lines by marking them as artifacts.
  • Enhanced the semantic structure and accessibility of simple tables (without cells spanning multiple rows or columns) by automatically tagging header cells.
  • Introduced support for horizontal headers to further improve the semantic structure and accessibility of simple tables.

2025.12.0-alpha0

We’re excited to share that this release adds initial support for semantic tagging and bookmarks! 🎉

For more details on both features, please see: QuestPDF/QuestPDF#1177

2025.7.4

  • Fixed the DocumentOperation.ExtendMetadata operation to preserve /Metadata tag attributes (/Subtype /XML) and improve compatibility with the Mustang validation tool for ZUGFeRD files.

2025.7.3

  • Fixed an issue that caused the PDF generation process to fail when the application lacked file access permissions to the default temporary folder.
  • Added support for specifying a custom temporary storage path through the QuestPDF.Settings.TemporaryStoragePath property.

2025.7.2

  • Disabled standard ligatures by default, as they often interfere with text copying and may pose accessibility issues,
  • Performance has been improved when generating multiple text-heavy documents at the same time. The more concurrent operations and text elements involved, the more noticeable the benefit,
  • Improved the developer experience by updating the behavior of the GeneratePdfAndShow method to always create a uniquely named file. It ensures that certain PDF viewers automatically refresh the preview,
  • Fixed exception triggered when generating a PDF without defining a Page in the Fluent API,
  • Increased test coverage,
  • Minor bug fixes and improvements.

2025.7.1

  • Fixed a significant memory leak in document operations involving overlay or underlay,
  • Fixed a minor memory leak in general document operations (e.g., merge, save with password),
  • Updated the Skia dependency to M140,
  • Removed unnecessary dependencies on Linux and macOS (OpenSSL, libjpeg-turbo) to improve compatibility across more platforms.

2025.7.0

  • Line element: Added gradient and dashed pattern support
  • Background element: Added linear gradient (multiple colors, arbitrary angle) and rounded corners
  • Border element: Added linear gradient (multiple colors, arbitrary angle), rounded corners, and alignment options (inside, outside, center)
  • Shadow element (new): Added blur, color, offset, and spread support
  • Internal: Introduced visual snapshot testing for the generation process
  • Updated Skia dependency to M138

2025.6.0-rc0

  • Line element: Added gradient and dashed pattern support
  • Background element: Added linear gradient (multiple colors, arbitrary angle) and rounded corners
  • Border element: Added linear gradient (multiple colors, arbitrary angle), rounded corners, and alignment options (inside, outside, center)
  • Shadow element (new): Added blur, color, offset, and spread support
  • Internal: Introduced visual snapshot testing for the generation process

2025.5.1

  • Reduced peak memory usage when generating PDF files by properly implementing a stream-based API,
  • Fixed the exception message displayed when the library cannot successfully parse the provided text as a color.

2025.5.0

  • Feature: Added the CaptureContentPosition API, allowing developers to inspect the exact position and size of arbitrary content. This enables the generation of dynamic, related content within the DynamicComponent, enhancing flexibility for complex layout requirements.
  • Enhancement: Changed the default page background color from white to transparent, which reduces developer confusion during document operations such as content overlaying. Only JPEG images are rendered with a white background.
  • Fix: ShowIfContext.TotalPages is now set to null during the initial rendering phase to avoid confusion when using the ShowIf API.
  • Fix: Improved memory management in the Companion App workflow by immediately disposing of native resources.

2025.4.4

Updated native dependencies:

  • Skia updated to version m137
  • Qpdf updated to version 12.2.0
  • OpenSSL updated to version 3.5.0

2025.4.2

  • Updated the Skia library to version m136,
  • Updated the NuGet package README,
  • Added DocumentOperation.Decrypt featre to remove encryption from PDF documents,
  • Added DocumentOperation.RemoveRestrictions feature,
  • Improved availability of native resources on the legacy .NET Framework,
  • Fixed compatibility with Unity3D on Linux and macOS builds,
  • Fixed encryption of PDF files with 40-bit keys,
  • Fixed encryption of PDF files with 128-bit keys.

Commits viewable in compare view.

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

---
updated-dependencies:
- dependency-name: QuestPDF
  dependency-version: 2026.8.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added .NET Pull requests that update .NET code dependencies Pull requests that update a dependency file labels Aug 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants