1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197
|
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- ========================================================================= -->
<!-- author vincent.hardy@eng.sun.com -->
<!-- version $Id$ -->
<!-- ========================================================================= -->
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" "http://forrest.apache.org/dtd/document-v20.dtd">
<document>
<header>
<title>Batik SVG Toolkit</title>
</header>
<body>
<section id="overview">
<title>Overview</title>
<p>
Batik is a Java-based toolkit for applications or applets that want to
use images in the <a href="site:svg11">Scalable Vector
Graphics (SVG)</a> format for various purposes, such as display,
generation or manipulation.
</p>
<p>
The project’s ambition is to give developers a set of
<a href="using/architecture.html#coreComponents">core modules</a> that can be
used together or individually to support specific SVG solutions.
Examples of <a href="site:modules">modules</a> are the
<a href="site:parsers">SVG Parser</a>, the
<a href="site:generator">SVG Generator</a> and the
<a href="site:dom-api">SVG DOM</a>. Another ambition for the Batik
project is to make it highly
<a href="site:extending">extensible</a>—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 <a href="site:browser">SVG
browser</a> implementation which validates the various modules and
their inter-operability.
</p>
</section>
<section id="uses">
<title>What Batik can be used for</title>
<p>
<img class="floating" src="images/batikUses.jpg" alt="Batik use cases"/>
With Batik, you can manipulate SVG documents anywhere Java is
available. You can also use the various
<a href="site:modules">Batik modules</a> to
<a href="site:generator">generate</a>,
<a href="site:dom-api">manipulate</a> and
<a href="site:transcoder">transcode</a> SVG images in your
applications or applets.
</p>
<p>
Batik makes it easy for Java based applications or applets to
deal with SVG content. For example, using Batik’s
<a href="site:generator">SVG generator module</a>,
a Java application or applet can very easily export its
graphics into the SVG format. Using Batik’s
<a href="site:swing">SVG viewing component</a>, 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
(<abbr title="Joint Photographic Expert Group">JPEG</abbr>,
<abbr title="Portable Network Graphics">PNG</abbr> or
<abbr title="Tagged Image File Format">TIFF</abbr>) or
other vector formats (<abbr title="Encapsulated PostScript">EPS</abbr> or
<abbr title="Portable Document Format">PDF</abbr>, the latter two due
to the transcoders provided by
<a href="http://xmlgraphics.apache.org/fop/">Apache FOP</a>).
</p>
<p>
The Batik toolkit includes the following:
</p>
<p><b>Modules</b></p>
<ul>
<!--li>A <a href="site:css">CSS engine</a></li-->
<li>An <a href="site:dom-api">SVG DOM implementation</a></li>
<li>A set of <a href="site:parsers">SVG microsyntax parsers</a></li>
<li>A <a href="site:scripting-ecmascript">scripting module</a></li>
<li>A <a href="site:generator">generator</a> that creates an SVG document from Java2D calls</li>
<li>A <a href="site:swing">Swing SVG component</a></li>
<li>A <a href="site:transcoder">transcoder module</a></li>
</ul>
<p><b>Tools and applications</b></p>
<ul>
<li>Squiggle, an <a href="site:browser">SVG browser</a></li>
<li>An <a href="site:rasterizer">SVG rasterizer</a></li>
<li>A <a href="site:font-converter">
<abbr title="TrueType Font">TTF</abbr> to SVG converter</a></li>
<li>A <a href="site:pretty-printer">pretty printer</a> for SVG
source files</li>
</ul>
<p>
See <a href="site:uses">examples of projects and products using
Batik</a> for real-life example of how Batik is already integrated in
projects and products.
</p>
</section>
<section id="spec">
<title>The SVG specification</title>
<p>
Scalable Vector Graphics, SVG, is a <a href="http://www.w3.org/">W3C</a>
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.
</p>
<p>
The SVG specification states:
</p>
<p class="quote">
This specification defines the features and syntax for Scalable Vector
Graphics (SVG). SVG is a language for describing two-dimensional
graphics in XML [<a href="http://www.w3.org/TR/REC-xml">XML10</a>]. 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.
</p>
<p>
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.
</p>
</section>
<section id="status">
<title>Implementation status</title>
<p>
The latest revision of Batik, release 1.7, is a conformant
<a href="http://www.w3.org/TR/SVG11/conform.html#ConformingSVGViewers">static
SVG implementation</a> and supports
<a href="http://www.w3.org/TR/SVG11/interact.html">interactivity</a>,
<a href="http://www.w3.org/TR/SVG11/linking.html">linking</a> and
<a href="http://www.w3.org/TR/SVG11/script.html">scripting</a> features
of the SVG specification. This release supports a nearly complete
implementation of declarative
<a href="http://www.w3.org/TR/SVG11/animate.html">animation</a>, too.
</p>
<p>
See the <a href="site:status">status</a> page for a detailed description
of the set of SVG features Batik supports.
</p>
</section>
<section id="download">
<title>Download Batik</title>
<p>
You can get the Batik distribution, source and binary, from the
<a href="site:download">download page</a>.
</p>
<note>
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.
</note>
<warning id="SecurityWarning" label="Security warning">
<p>
This is a warning that a script security issue was reported in
the Batik Squiggle browser. Squiggle uses the Rhino scripting
engine and some features of that engine can be leveraged by
malicious scripts to gain access to otherwise protected
resources (like the file system). This issue was fixed in the
1.5.1 release of Batik. If you are using a version of Batik older than
1.5.1, you should upgrade.
</p>
</warning>
</section>
</body>
</document>
|