Apache(tm) Batik SVG Toolkit - a Java-based toolkit for applications or applets that want to use images in the Scalable Vector Graphics (SVG)
Apache Batik
Overview
License
Notes
Status
Demo
FAQs
Batik Wiki
Mailing lists
Contributors
Bug database
Projects using Batik
Batik Tools
Overview
Browser
Rasterizer
Font converter
Pretty printer
Using Batik
Overview
Architecture
Javadoc APIs
DOM API
Parsers
Scripting
Scripting with ECMAScript
Scripting with Java
Scripting with Security
SVG generator
Swing components
Transcoder API
Extending Batik
Development
Overview
Branches
SVG 1.2 support
Test infrastructure
Apache™ XML Graphics
Project Overview
Who We Are
Legal Stuff
Project Charter
Mailing Lists
Code Repositories
ASF Sponsorship Program
ASF Thanks
Licenses
Apache XML Graphics Security
ASF Security
Sub Projects
Apache FOP
Apache XML Graphics Commons
Search Apache XML Graphics
ApacheCon N. America
ApacheCon NA
Hope to see you there!
ApacheCon Europe
ApacheCon Europe
Hope to see you there!
Support the Apache Software Foundation
The Apache™ Batik Project
Apache™ Batik SVG Toolkit
Overview
Batik is a Java-based toolkit for applications or applets that want to use images in the
Scalable Vector Graphics (SVG)
format for various purposes, such as display, generation or manipulation.
The project’s ambition is to give developers a set of
core modules
that can be used together or individually to support specific SVG solutions. Examples of
modules
are the
SVG Parser
, the
SVG Generator
and the
SVG DOM
. Another ambition for the Batik project is to make it highly
extensible
—for example, Batik allows the developer to handle custom SVG elements. Even though the goal of the project is to provide a set of core modules, one of the deliverables is a full fledged
SVG browser
implementation which validates the various modules and their inter-operability.
News
6 May 2025: Version 1.19 Released
This is mainly a bug fix release
9 Oct 2024: Version 1.18 Released
This is mainly a bug fix release
22 Aug 2023: Version 1.17 Released
This is mainly a bug fix release, including 2 security fixes
25 Oct 2022: Version 1.16 Released
This is mainly a bug fix release, including 2 security fixes
22 Sept 2022: Version 1.15 Released
This is mainly a bug fix release, including 3 security fixes
20 Jan 2021: Version 1.14 Released
This is mainly a bug fix release
13 May 2020: Version 1.13 Released
This is mainly a bug fix release
What Batik can be used for
With Batik, you can manipulate SVG documents anywhere Java is available. You can also use the various
Batik modules
to
generate
manipulate
and
transcode
SVG images in your applications or applets.
Batik makes it easy for Java based applications or applets to deal with SVG content. For example, using Batik’s
SVG generator module
, a Java application or applet can very easily export its graphics into the SVG format. Using Batik’s
SVG viewing component
, an application or applet can very easily integrate SVG viewing and interaction capabilities. Another possibility is to use Batik’s modules to convert SVG to various formats, such as raster images (
JPEG
PNG
or
TIFF
) or other vector formats (
EPS
or
PDF
, the latter two due to the transcoders provided by
Apache FOP
).
The Batik toolkit includes the following:
Modules
An
SVG DOM implementation
A set of
SVG microsyntax parsers
scripting module
generator
that creates an SVG document from Java2D calls
Swing SVG component
transcoder module
Tools and applications
Squiggle, an
SVG browser
An
SVG rasterizer
to SVG converter
pretty printer
for SVG source files
See
examples of projects and products using Batik
for real-life example of how Batik is already integrated in projects and products.
The SVG specification
Scalable Vector Graphics, SVG, is a
W3C
Recommendation. It defines an XML grammar for rich 2D graphics which includes features such as transparency, arbitrary geometry, filter effects (shadows, lighting effects, etc.), scripting and animation.
The SVG specification states:
This specification defines the features and syntax for Scalable Vector Graphics (SVG). SVG is a language for describing two-dimensional graphics in XML [
XML10
]. SVG allows for three types of graphic objects: vector graphic shapes (e.g., paths consisting of straight lines and curves), images and text. Graphical objects can be grouped, styled, transformed and composited into previously rendered objects. The feature set includes nested transformations, clipping paths, alpha masks, filter effects and template objects.
SVG documents can be interactive and dynamic. Animations can be defined and triggered either declaratively (i.e., by embedding SVG animation elements in SVG content) or via scripting.
Implementation status
The latest revision of Batik, release 1.19, is a conformant
static SVG implementation
and supports
interactivity
linking
and
scripting
features of the SVG specification. This release supports a nearly complete implementation of declarative
animation
, too.
See the
status
page for a detailed description of the set of SVG features Batik supports.
Download Batik
You can get the Batik distribution, source and binary, from the
download page
All other libraries needed by Batik are included in the distribution. As a consequence the Batik archive is quite big, but after you have downloaded it, you will not need anything else.
Copyright © 2025 The Apache Software Foundation, Licensed under
the
Apache License, Version 2.0
Apache, Apache XML Graphics, Apache FOP, Apache Batik, the Apache logo, and the
Apache XML Graphics logos are trademarks of
The Apache
Software Foundation
. All other marks mentioned may be trademarks or registered
trademarks of their respective owners.