SvgGraphics - Utilities, um gezeichnete Elemente als SVG zu speichern


#1

Wenn man etwas mit Swing in ein Graphics2D zeichnet, kann man das in eine JComponent reinzeichnen und dann einen Screenshot machen. Manchmal ist es aber praktischer, das ganze als Vektorgraphik zur Verfügung zu haben. Apache Batik bietet alles, was dafür notwendig ist: Man kann in ein SVGGraphics2D zeichnen, und das dann als SVG abspeichern.

Ein paar kleine Utility-Funktionen hierfür sind in der https://github.com/javagl/SvgGraphics - Library zusammengefasst. Damit kann man z.B. mit

SVGGraphics2D g = SvgGraphics.create();
someJComponent.printAll(g);
SvgGraphicsWriter.save(g);

eine JComponent komplett in eine (vom Benutzer ausgewählte) SVG-Datei speichern.

Das ganze liegt in der Maven Central:

<dependency>
  <groupId>de.javagl</groupId>
  <artifactId>svg-graphics</artifactId>
  <version>0.0.2</version>
</dependency>

Für kleine, lokale Tests kann man auch eine der releases runterladen, wo die library mit allen dependencies als shaded JAR angeboten wird. (Die enthält Klassen von Apache Batik, und steht unter der Apache License 2.0).