christiaanderidder / QuestPDF.Markdown

QuestPDF.Markdown allows rendering markdown into a QuestPDF document
MIT License
26 stars 5 forks source link

Bump QuestPDF from 2023.12.6 to 2024.3.0 #51

Closed dependabot[bot] closed 5 months ago

dependabot[bot] commented 5 months ago

Bumps QuestPDF from 2023.12.6 to 2024.3.0.

Release notes

Sourced from QuestPDF's releases.

2024.3.0

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.

Primary features

This change was necessary to provide much higher flexibility and enable several new long-awaited features:

  • Font subsetting - this feature includes only necessary font glyphs in the output document, significantly reducing the file size, especially when using glyph-rich fonts supporting multiple languages,
  • Improved text-related capabilities, including but not limited to text justification, bi-directionality, enhanced line-breaking algorithms, more styles for text decoration, word spacing, and more,
  • Introduced additional document compression to reduce file size further,
  • Integrated native SVG support,
  • In future releases: enhanced accessibility through support for PDF tags.

Other changes

  • Removed the SkiaSharp dependency, thereby making QuestPDF a standalone library,
  • Updated the Lato font to the latest version (2.015),
  • Included licenses of the third-party dependencies in the NuGet package,
  • Included a list of Contributors in the NuGet package to acknowledge the valuable input from our Community in improving QuestPDF.

Breaking changes

Unfortunately, this release also introduces breaking changes:

  • Removed support for injecting SkiaSharp content directly into the document. It is still possible to integrate SkiaSharp through vector and raster graphics; please consult the documentation for more details,
  • Removed support for platforms: Android, iOS, UWP, WASM, and Linux-Alpine. We are currently investigating reintroducing support for WASM and Linux-Alpine in future releases.

Acknowledgments

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.

2024.3.0-rc2

  • Fixed critical issue: the library fails during PDF generation

2024.3.0-rc1

  • Greatly reduced memory usage by reusing SkParagraphBuilder instances,
  • Fixed memory leaks in the native code,
  • Fixed: the DocumentMetadata.CreationDate and DocumentMetadata.ModificationDate properties are not properly populated in generated PDF,
  • Fixed: when changing the TextStyle.FontFamilies property, the cache does not work correctly leading to higher memory usage.

2024.3.0-rc

  • Updated Skia to version m124,
  • Linux support: Removed dependency on the FontConfig library,
  • Linux support: added support for older Linux distributions, equivalent to Ubuntu 18,
  • Linux support: Introduced support for arm64 architecture,
  • Resolved an issue causing an "Invalid UTF8" error message showing in the console,
  • Addressed a problem with the text underline effect not functioning as expected due to Skia's DecorationMode.Gaps not handling all fonts correctly,
  • Optimized the algorithm for loading fonts provided in the application folder, including default fonts, for better performance.

... (truncated)

Commits


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 merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show 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)