Skip to content

v1.7.0

Choose a tag to compare

@weisJ weisJ released this 21 Jan 13:32
· 220 commits to master since this release
546ebac

Warning

This release erroneously contains byte code incompatible with Java versions before Java 21. This has been fixed in JSVG version 1.7.1.

Changes

  • Implementors of Output now have more control over how text gets rendered. The can opt to receive information about the text being laid out by returning a custom TextOutput in Output#textOutput.
  • ExternalResourcePolicy now applies to all resources not only referenced SVG elements.
  • Support for multi-char codepoints such as "𝄞".
  • Rudimentary support for rendering emoji. This feature does not work on every operating system and JDK version.
  • Support for more units:
    • rem
    • ch
    • Q
    • vw,vh,vmin,vmax
    • vi,vb
  • ParsedElement now has access to the document it belongs to (via ParsedElement#document) and to its parent element (via ParsedElement#parent).
  • The rx and ry attributes are now correctly applied in cases.
  • Fixed rendering of paths with repeated cubic/quadratic bezier commands.
  • Fixed usage of repeated values in the paint-order attribute.
  • stroke-opacity and fill-opacity now correctly don't accumulate to child elements.
  • Percentages in stroke related properties now correctly refer to the diagonal length of the current viewport.
  • Fixed bounds computation of empty groups for which a transform is specified.
  • Support for the transform-box property. (by @Cu3PO42 in #99)
  • Prevent DOS attacks through exponential leaf nodes using use elements. The limits for this can be configured setting custom DocumentLimits in the LoaderContext.
  • JSVG now provides OSGi metadata (by @HannesWell in #107)
  • Preview support for animations. Not many properties outside of geometry properties are animatable. Only basic animation timings are implemented.

Deprecations

See documentation for replacements.

  • LoadHelper(AttributeParser, ResourceLoader)
  • SVGDocument#render(JComponent, Graphics2D, ViewBox)
  • AttributeNode#getPercentage(String, float)
  • SVGDocumentBuilder(ParserProvider, ResourceLoader, NodeSupplier)
  • SVGLoader#load(InputStream)
  • SVGLoader#load(InputStream, ParserProvider)
  • SVGLoader#load(InputStream, ParserProvider, ResourceLoader)

Full Changelog: v1.6.1-rc1...v1.7.0-rc1