Skip to content
carlosame edited this page Jul 13, 2024 · 20 revisions

EchoSVG

EchoSVG is a fork of Apache Batik, a Java based toolkit for applications which handle images in the Scalable Vector Graphics (SVG) format for various purposes, such as viewing, generation or manipulation.

Supports level 4 CSS selectors and level 4 colors (including colors with alpha channel), as well as many other improvements over Batik.


SVG support

Like Batik, EchoSVG is built on SVG 1.1 although also supports part of the (deprecated) SVG 1.2 specification and a few bits of SVG2 (like the namespaceless href attribute).


CSS support

The SVG 1.1 standard is based on CSS2, however EchoSVG supports level 4 colors (albeit with gamut mapping to the sRGB color space), as well as level 4 selectors.

And with the CSSTranscodingHelper, it can render many documents that use modern CSS. For an example of the CSS that can be processed with EchoSVG, please look at this sample test file featuring custom properties, @supports and level 4 @media rules.


Java Runtime

EchoSVG is compatible with Java 8 and later, although module-info files are provided for modular JDKs.


Why EchoSVG instead of Batik?

If you wonder why EchoSVG was created and which are the reasons to use it instead of Batik, please check Why EchoSVG.


Documentation


Licensing

The software is available under an Apache 2.0 license but some of the files in the repository are under different licenses, please read the LICENSE and NOTICE files for details. The tests use files which may have their own additional licenses, under the samples directory. Please look for the appropriate license files there.


Important Note

This project is not available from Maven Central, as its maintainer does not accept Maven Central's Terms of Use, see also issue #95. The project distributes its artifacts through the css4j Maven repository.