Skip to content

Releases: QuestPDF/QuestPDF

2023.12.3

12 Jan 13:43
f42d825
Compare
Choose a tag to compare
  • Improvement: enhanced the automated layout issue detection algorithm to cover a broader range of cases.
  • Update: upgraded the SkiaSharp dependency to version 2.88.7. This update addresses issues with JPEG images being incorrectly encoded/decoded on ARM devices.
  • Maintenance: added .NET 8 as an official build target for the library.

2022.12.14

12 Jan 13:47
f42d825
Compare
Choose a tag to compare
  • Update: upgraded the SkiaSharp dependency to version 2.88.7. This update addresses issues with JPEG images being incorrectly encoded/decoded on ARM devices.
  • Maintenance: added .NET 8 as an official build target for the library.

2023.12.2

01 Jan 16:40
Compare
Choose a tag to compare
  • Fixed: The hyperlink element was annotating the incorrect location, in specific layout scenarios when used with right-to-left content direction
  • Enhancement: Improved layout stability for dynamic components utilizing the TotalPages property to generate content
  • Maintenance: The QuestPDF Previewer application has been updated to utilize the latest version of the Avalonia library

2023.12.1

15 Dec 13:10
Compare
Choose a tag to compare
  • Fixed: table layout renders incorrectly if one of its cells spans at least three pages

2022.12.12

15 Dec 13:09
Compare
Choose a tag to compare
  • Fixed: table layout renders incorrectly if one of its cells spans at least three pages

2023.12.0

03 Dec 09:33
Compare
Choose a tag to compare

Version 2023.12.0

  • Feature: added a Shrink element that enables relaxation of layout constraints from the parent element, applicable to both vertical and horizontal axes independently
  • Feature: developed the ShowIf API, allowing conditional visibility of elements based on rendering context (initially supports PageNumber only)
  • Feature: added functionality to specify unit types for the Spacing property in the Row element, improving Fluent API consistency (by @sclarke81)
  • Optimization: reduced memory usage and decreased Garbage Collector pressure in the FluentAPI, enhancing performance
  • Improvement: integrated CancellationToken support in the ShowInPreviewer method (by @marcmognol)
  • Improvement: simplified DynamicComponent usage by introducing a state-less component model (by @bennetbo)
  • Testing: introduced a new internal layout-testing engine (prototype)

Huge thanks to all contributors and community members. Your help is highly appreciated!

2022.12.11

03 Dec 12:11
Compare
Choose a tag to compare

Version 2022.12.0:

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!

Version 2022.12.1:

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

Version 2022.12.2:

Performance improvements in various areas
Text rendering stability improvements
Fixed: the Settings.CheckIfAllTextGlyphsAreAvailable setting does not work correctly

Version 2022.12.3:

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

Version 2022.12.4:

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

Version 2022.12.6:

Fix: fixed the rendering order of table cells in certain scenarios

Version 2022.12.7:

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

Version 2022.12.8:

Updated SkiaSharp dependency from 2.88.3 to 2.88.6
Updated QuestPDF Previewer dependencies: from Avalonia 0.10.X to 11.0.X

Version 2022.12.9:

Enhanced developer experience by refining the accuracy of the exception message thrown when native SkiaSharp dependencies are unavailable in the runtime environment.

Version 2023.12.10

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.

Version 2023.12.11

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)

2023.10.2

13 Nov 22:20
Compare
Choose a tag to compare
  • Resolved issue with page numbering errors in merged documents.
  • 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.

2023.10.1

31 Oct 23:29
8b3538f
Compare
Choose a tag to compare

Version 2023.10.1

  • Enhanced developer experience by refining the accuracy of the exception message thrown when native SkiaSharp dependencies are unavailable in the runtime environment.
  • Fixed link in the license-related message (thank @ruyut).

2023.10

23 Oct 22:52
Compare
Choose a tag to compare
  • Primary focus: Improved the developer experience by enhancing debugging for document layout issues. Now, the library visually marks the places where problems occur
  • Updated dependency SkiaSharp from 2.88.3 to 2.88.6
  • Updated QuestPDF Previewer dependencies: from Avalonia 0.10.X to 11.0.X
  • Improved code quality (thank you @Lehonti)

Let's analyse a simple example showing how the new layout issue debugging mechanism works in practice. In the following scenario, we are artifically limiting the available vertical space, which makes the text content overflow:

container
    .ShowEntire()
    .Background(Colors.Grey.Lighten3)
    .Padding(10)
    .MaxHeight(20) // <- here is the problematic element
    .Column(column => 
    {
        column.Spacing(5);
        column.Item().Text("Comments").FontSize(14).SemiBold();
        column.Item().Text(Model.Comments);
    });

This results in the following output when generating the document with the debugger attached. The green area represents available space, while the red area shows the overflow.