QuestPDF is a modern open-source .NET library for PDF document generation. Offering comprehensive layout engine powered by concise and discoverable C# Fluent API. Easily generate PDF reports, invoices, exports, etc.
OTHER License
Bot releases are hidden (Show)
Published by MarcinZiabek 6 months ago
Published by MarcinZiabek 6 months ago
AccessViolationException
that occurred when UseEnvironmentFonts was set to false
and documents were generated in parallel.Published by MarcinZiabek 6 months ago
Published by MarcinZiabek 6 months ago
The primary theme of this release is the removal of the SkiaSharp dependency and the introduction of a custom native layer built on top of Skia M124.
This change was necessary to provide much higher flexibility and enable several new long-awaited features:
Unfortunately, this release also introduces breaking changes:
The work on this release took many months and was only possible with proper development funding. We would like to thank every company that followed the licensing terms and purchased the license.
The help of the QuestPDF Community was also astounding. Thank you for active testing and for providing valuable feedback and contributions.
We would also like to thank the SkiaSharp project, its maintainers, and its contributors for creating an exceptional graphics library. It was a fantastic foundation for QuestPDF for over 3 years.
Published by MarcinZiabek 7 months ago
Published by MarcinZiabek 7 months ago
Published by MarcinZiabek 7 months ago
Find more details about this release in the following discussion: https://github.com/QuestPDF/QuestPDF/discussions/622
Published by MarcinZiabek 7 months ago
🎊 Version 2024.3.0-beta1 🎊
Find more details about this release in the following discussion: https://github.com/QuestPDF/QuestPDF/discussions/622
Published by MarcinZiabek 8 months ago
Find more details about this release in the following discussion: https://github.com/QuestPDF/QuestPDF/discussions/622
Published by MarcinZiabek 8 months ago
This release's primary theme is removing the SkiaSharp dependency and introducing a custom native layer built on Skia M121. This change was necessary to provide much higher flexibility and enable several new long-awaited features:
We thank the SkiaSharp project, its maintainers, and contributors for creating a fantastic graphics library. It was an exceptional foundation for QuestPDF for over 3 years.
This release requires at least .NET Standard 2.1. The beta release will reintroduce support for the .NET Standard 2.0.
This significant achievement was made possible by introducing the hybrid license and substantially improved funding for development. Thank you!
Published by MarcinZiabek 9 months ago
Published by MarcinZiabek 9 months ago
Published by MarcinZiabek 9 months ago
Published by MarcinZiabek 9 months ago
Published by MarcinZiabek 10 months ago
Published by MarcinZiabek 10 months ago
Version 2023.12.1
Published by MarcinZiabek 10 months ago
Version 2022.12.12
Published by MarcinZiabek 11 months ago
Feature: implemented LetterSpacing property for the Text element
Improvement: the Text element API accepts now only string values, objects are not automatically converted anymore
Fix: the Alignment element incorrectly limits size of its child when only one axis is set (horizontal or vertical)
Maintenance: Updated SkiaSharp dependency to 2.88.3
This release was possible thanks to enormous help of AntonyCorbett, thank you!
Fixed: loading fonts from embedded resource via the FontManager.RegisterFontFromEmbeddedResource method
Fixed: better layout calculation stability for the Column element
Improvement: exposed missing API method for the Dynamic component, enabling applying more advanced optimizations
Improvement: better API documentation for the Settings.DocumentLayoutExceptionThreshold property
Performance improvements in various areas
Text rendering stability improvements
Fixed: the Settings.CheckIfAllTextGlyphsAreAvailable setting does not work correctly
Fix: inconsistent text height when using multiple lines with different TextStyles
Improvement: added validation for color arguments
Fix: the inlined element is shown only once in the header but should be repeated on each page
Fix: the TextStyle.Fallback property incorrectly inherits parent's and global properties
Improvement: updated the CreateNotMatchingFontException message to mention that the glyph checking operation can be disabled with the Settings.CheckIfAllTextGlyphsAreAvailable setting
Fix: fixed the rendering order of table cells in certain scenarios
Text rendering enhancement: a fake underline is drawn when the font typeface lacks an underline effect configuration or it is unavailable on runtime operating system
Text rendering enhancement: a fake strikethrough is drawn when the font typeface lacks a strikethrough effect configuration or it is unavailable on runtime operating system
Text rendering enhancement: a fake skew operation is applied to mimic an italic effect when the provided font lacks an italic variant
Text rendering enhancement: a fake bold effect is applied when the font doesn't offer variants of higher weight
Updated SkiaSharp dependency from 2.88.3 to 2.88.6
Updated QuestPDF Previewer dependencies: from Avalonia 0.10.X to 11.0.X
Enhanced developer experience by refining the accuracy of the exception message thrown when native SkiaSharp dependencies are unavailable in the runtime environment.
Enhanced SkiaSharp native dependency detection for increased compatibility.
Fixed rare instances of text rendering inaccurately due to cache-related faults.
Fixed a rare problem where the Row element does not always respect layout issues in its children.
Back-ported feature as part of extended support: simplified development loop by introducing cross-platform methods GeneratePdfAndShow() and GenerateXpsAndShow()
Back-ported community-developed feature: added functionality to specify unit types for the Spacing property in the Row element, improving Fluent API consistency (by @sclarke81)
Back-ported community-developed improvement: integrated CancellationToken support in the ShowInPreviewer method (by @marcmognol)
Back-ported community-developed improvement: simplified DynamicComponent usage by introducing a state-less component model (by @bennetbo)
Published by MarcinZiabek 11 months ago
Version 2023.12.0
Huge thanks to all contributors and community members. Your help is highly appreciated!
Published by MarcinZiabek 11 months ago