| <?xml version="1.0"?> |
| <!DOCTYPE document SYSTEM "./dtd/document-v10.dtd"> |
| |
| <!-- |
| |
| Copyright 2000-2004,2006 The Apache Software Foundation |
| |
| Licensed 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$ --> |
| <!-- ========================================================================= --> |
| <document> |
| <header> |
| <title>Batik SVG Toolkit</title> |
| <subtitle>SVG Tools in Java</subtitle> |
| <authors> |
| <person name="Vincent Hardy" email="vincent.hardy@eng.sun.com"/> |
| <person name="Thierry Kormann" email="tkormann@apache.org"/> |
| <person name="Stephane Hillion" email="stephane@hillion.org"/> |
| </authors> |
| </header> |
| |
| <body> |
| <s1 title="Batik Overview"> |
| <figure src="images/splash.png" alt="Batik release 1.5beta3" /> |
| |
| <p> |
| Batik is a Java(tm) technology based toolkit for applications |
| or applets that want to use images in the <link |
| href="http://www.w3.org/TR/SVG/">Scalable Vector Graphics |
| (SVG)</link> format for various purposes, such as viewing, |
| generation or manipulation. |
| </p> |
| <ul> |
| <li><link href="#SecurityWarning">Script Security Warning</link></li> |
| <li><link href="#BatikApplications">Applications of Batik</link></li> |
| <li><link href="#SVGSpecification">The SVG Specification</link></li> |
| <li><link href="#BatikStatus">What is Batik's Implementation Status?</link></li> |
| <li><link href="#DownloadBatik">Downloading the Batik distribution (source and binary)</link></li> |
| <li><link href="#projectAndProductExamples">Examples of projects and products using Batik</link></li> |
| </ul> |
| <p> |
| The project's ambition is to give developers a set of |
| <link href="architecture.html#coreComponents">core |
| modules</link> which can be used together or individually to support |
| specific SVG solutions. Examples of |
| <link href="architecture.html">modules</link> |
| are the |
| <link href="architecture.html#lowLevelComponents">SVG Parser</link>, |
| the <link href="svggen.html">SVG Generator</link> and |
| the <link href="domapi.html">SVG DOM</link>. Another ambition for |
| the Batik project is to make it highly |
| <link href="extendingBatik.html">extensible</link> |
| (for example, Batik allows the developer to handle custom SVG |
| tags). Even though the goal of the project is to provide a |
| set of core modules, one of the deliverables is a full fledged |
| <link href="svgviewer.html">SVG browser</link> implementation |
| which validates the various modules and their inter-operability. |
| </p> |
| |
| </s1> |
| |
| <anchor id="SecurityWarning" /> |
| <s1 title="Script 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). |
| </p> |
| <p> |
| The Batik team has worked with the Rhino team to fix the isssue |
| that was reported and the <link href="http://www.apache.org/dyn/closer.cgi/xml/batik">Batik 1.5.1</link> |
| patch release addresses the issue. |
| </p> |
| </s1> |
| |
| <anchor id="BatikApplications" /> |
| <s1 title="Applications of Batik"> |
| <p><img 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 |
| <link href="architecture.html">Batik modules</link> to |
| <link href="svggen.html">generate</link>, |
| <link href="domapi.html">manipulate</link>, |
| <link href="rasterizerTutorial.html">transcode</link> and search 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 |
| <link href="svggen.html">SVG generator module</link>, |
| a Java application or applets can very easily export its |
| graphics into the SVG format. Using Batik's SVG processor and |
| SVG Viewing component, an application or applet can very |
| easily integrate SVG viewing capabilities. Another |
| possibility is to use Batik's modules to convert SVG to |
| various formats, such as raster images (JPEG,PNG or Tiff). |
| </p> |
| <p> |
| Batik provides <link href="architecture.html">core modules</link> |
| for handling and processing SVG files. See |
| <link href="#projectAndProductExamples">examples of projects and |
| products using Batik</link> for real-life example of how Batik is |
| already integrated in projects and products. |
| </p> |
| <p> |
| Batik provides building blocks that developers can assemble in |
| various ways in their Java technology applications or applets |
| to generate, parse, view or convert SVG contents. Batik can |
| also be used to generate SVG on a client or on a server, and |
| Batik can <link href="svgrasterizer.html">convert SVG |
| content</link> convert SVG content into other formats such as |
| JPEG, PNG or Tiff or other formats (<link |
| href="rasterizerTutorial.html">transcoder API</link>). |
| Batik's goal is to make it easy for developers to handle SVG |
| content for various purposes, client-side or server-side, as |
| illustrated in the diagram. |
| </p> |
| </s1> |
| |
| <anchor id="SVGSpecification" /> |
| <s1 title="The SVG Specification"> |
| <p> |
| Scalable Vector Graphics, SVG, is a <link href="http://www.w3.org">W3C</link> |
| 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 <link href="http://www.w3.org/TR/SVG/">SVG specification</link> states:</p> |
| <p>This specification defines the features and syntax for Scalable Vector Graphics (SVG). |
| SVG is a language for describing two-dimensional graphics in XML [<link href="http://www.w3.org/TR/REC-xml">XML10</link>]. 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 drawings 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> |
| </s1> |
| |
| <anchor id="BatikStatus" /> |
| <s1 title="Batik's Implementation Status"> |
| <p> |
| The latest revision of Batik is a conformant <link href="http://www.w3.org/TR/SVG11/conform.html#ConformingSVGViewers">static |
| SVG implementation</link> and supports <link href="http://www.w3.org/TR/SVG11/interact.html">interactivity</link>, |
| <link href="http://www.w3.org/TR/SVG11/linking.html">linking</link> and |
| <link href="http://www.w3.org/TR/SVG11/script.html">scripting</link> features of the SVG specification. |
| The Batik project does not support declarative <link href="http://www.w3.org/TR/SVG11/animate.html">animation</link> |
| and there is currently no plan to add support for SMIL Animation to the Batik project.</p> |
| |
| <p> |
| See the <link href="status.html">status</link> page for a detailed description of the set of SVG features |
| Batik supports. |
| </p> |
| </s1> |
| |
| <anchor id="DownloadBatik" /> |
| <s1 title="Download Batik"> |
| <p> |
| You can get the Batik distribution (<link href="install.html#distributions">source</link> |
| and <link href="install.html#distributions">binary</link>) on the |
| <link href="http://www.apache.org/dyn/closer.cgi/xml/batik">download page</link>. |
| </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 downloaded it, you will not need anything else. |
| </note> |
| </s1> |
| |
| <anchor id="projectAndProductExamples" /> |
| <s1 title="Examples of projects and products using Batik"> |
| <p>While it is hard to track projects and products which are using Batik, here are a few |
| ones which are known:</p> |
| <ul> |
| <li><link href="http://cocoon.apache.org/">The Apache Cocoon project</link> uses Batik to rasterize SVG images. </li> |
| <li><link href="http://xmlgraphics.apache.org/fop">The Apache FOP project</link> uses Batik to handle SVG images. It uses the SVG rasterizer and extends the Batik transcoder architecture to offer SVG to PDF conversion.</li> |
| <li><link href="http://www.bitflash.com/products/brilliance.asp">BitFlash Brilliance</link> delivers a robust set of graphic-design and source-code editing tools for fast and flexible Mobile SVG development. It uses Batik to display SVG Images.</li> |
| <li><link href="http://burma.free.fr">eDoc</link>, a page layout software, is using the Batik SVG generator to export pages to SVG</li> |
| <li><link href="http://www.elixirtech.com/ElixirReport">ElixirTech's ElixirReport</link> uses Batik for charting and for its SVG component.</li> |
| <li><link href="http://glipssvgeditor.sourceforge.net/">GLIPS Graffiti</link> is an Open Source Extensible Full Feature Native SVG Editor.</li> |
| <li><link href="http://www2.ilog.com/preview/Discovery/">ILOG Discovery Preview</link>, a free visual data analysis tool letting you visualize and edit data sets in a very wide variety of views (2D graphs and charts, various kinds of treemaps, parallel coordinates, parallel histograms and much more), uses the Batik SVG export module. </li> |
| <li><link href="http://www.ilog.com/products/jviews">ILOG JViews Component Suite</link>, a product for advanced visualization, uses and extends the Batik SVG export module. </li> |
| <li><link href="http://www.object-refinery.com/jfreechart/index.html">The JFreeChart Project</link> uses Batik to export charts in the SVG format. </li> |
| <li><link href="http://lagoon.sourceforge.net/">Lagoon</link>, an XML-based framework for web site maintenance, uses the Batik SVG Rasterizer to render SVG as bitmap graphics for web publishing</li> |
| <li><link href="http://www.throneworld.com/lords/gms/dev.html">Lords Map</link>, a program to allow players and visitors to view the current map of various campaigns. Lord Map uses Batik's SVG DOM and SVG Generator.</li> |
| <li><link href="http://luxor-xul.sourceforge.net/index.html">Luxor XUL</link> is a free, open-source XML User Interface Language (XUL) toolkit in Java released under the GNU GPL that supports hand-picked Mozilla XUL goodies and also includes a ultra-lightweight, multi-threaded web server, a portal engine, a scripting engine, a template engine and much more. Gerard Bauer, the Luxor project lead, has written an extensive <link href="http://luxor-xul.sourceforge.net/talk/jug-nov-2002/slides.html">SVG presentation</link>.</li> |
| <li><link href="http://www.optimalj.com">OptimalJ</link>, a UML Class Diagram Editor for NetBeans, uses Batik to export SVG. </li> |
| <li><link href="http://otn.oracle.com/products/jdev/content.html">Oracle Corp.'s JDeveloper9i</link> uses Batik to export class diagrams in SVG. It uses the SVG export module (SVGGraphics2D).</li> |
| <li><link href="http://www.kiyut.com/">Sketsa</link> is a vector drawing application based on SVG. With Sketsa, you can create vector graphics that can be scaled and printed at any resolution, without losing detail or clarity.</li> |
| <li><link href="http://www.isacat.net/2002/svolgo/index.htm">Svolgo</link>,a Graph Visualisation/Transformation Framework for the Semantic Web Cross-model transformation, node and arc diagrams, representation in SVG. This project uses Batik's SVG DOM implementation.</li> |
| <li><link href="http://www.togethersoft.com/products/controlcenter/whats_new.jsp">Together Control Center 5.5</link> uses Batik to export UML diagrams in SVG.</li> |
| <li><link href="http://volity.net/">Volity</link> is an open platform for Internet-based multiplayer casual gaming. Its official client, <link href="http://volity.org/projects/gamut/">Gamut</link>, uses Batik, allowing developers to create game UI files that use ECMAScript-driven SVG.</li> |
| <li><link href="http://bitflux.ch/developer/misc/70/">XML_svg2image, </link> is a PHP class which translates svg files to png or jpeg using Batik</li> |
| <li><link href="http://xweb.sf.net">XWeb</link>, a tool to create websites automatically out of XML input. Uses the Batik SVG Rasterizer.</li> |
| </ul> |
| </s1> |
| </body> |
| </document> |