Developping SVG Applications with Batik

Submitted by Vincent Hardy ( for the Batik team

Speakers Information:


Batik is an open-source project at the Apache Software Foundation and is introduced in the "Introduction to the Apache Batik SVG Toolkit" session. The project's ambition is to give developers a set of core modules which can be used together or individually to support specific SVG solutions.

The goal of this session is to explain how to use the Batik components to develop Java(tm) applications around SVG. The session uses concrete Java and SVG code examples.

The session contains three sections. The first section explains how to create or manipulate SVG content in an application. The second section describes how to convert SVG images to other formats such as PNG. The last section explains how to add SVG viewing capabilities to Java applications.

One of SVG's goals is to provide an open XML format for rich 2D graphics, which allows applications to exchange graphical data easily. The first section discusses multiple solutions for creating SVG content from an application: the SVG generator, which allows all Java applications to export their graphics in SVG, the DOM implementation which lets developers create and manipulate SVG documents easily, and the SVG Font converter which helps ensure proper text rendering accross platforms.

While the hope is that SVG will be ubiquitous in tomorow's computing environment, today's reality often requires that SVG images be converted to other formats or, similarly, that other formats be converted to SVG. The second section shows how to deliver images in the format appropriate for a given device, user, or application, using Batik's transcoder infrastructure. An example shows how the same SVG document is converted to PNG, JPEG or PDF depending on context.

Sometimes, delivering SVG content to a browser is not enough, and developers want to build an application around SVG. The last section of this session explains how to view SVG content in any Java application with Batik's Swing component. The example will show how to deliver sophisticated and lightweight SVG navigation solutions with Batik's viewing component.

The session ends with a summary of the Batik modules, including examples of real-applications which use them and future enhancements.