Batikは、独立して、あるいは
SVG コンテンツを生成する (SVG ジェネレータ,
SVG DOM 実装のドキュメントを参照)ために、
SVG コンテンツを表示する (JSVGCanvasを参照)ために、あるいは
SVG フォーマットをコンバートする (
SVG トランスコーダ のチュートリアルを参照)ために結合するために、利用できる様々なコア モジュールを含んでいます。
さらに、Batikでは、
オブジェクト指向のグラフィック ベクトル ツールキット(GVT)、低レベルのSVG文法固有のパーサの集合と、(たとえば複雑なフィル タイプとフィルター エフェクトといった)Java 2D APIへの拡張の集合といった、低レベルモジュールを含んでいます。
最後に、Batikは開発者がコードと付き合いやすく、また様々なモジュールを迅速に利用することができるような、開発者を助けるためのパッケージされたアプリケーションを同梱しています:
SVG ブラウザ (
org.apache.batik.apps.svgbrowser
パッケージ) 、
SVG ラスタライザ (
org.apache.batik.apps.rasterizer
パッケージ)、
フォント コンバータ (
org.apache.batik.apps.ttf2svg パッケージ
) 、
SVG プリティ プリンタ (
org.apache.batik.apps.svgpp パッケージ
)
SVG ブラウザ は、SVGドキュメントを、表示し、ユーザーにズーム、パン、ローテートさせ、SVGソースを表示し、SVGドキュメント間をリンクし、SVG DOMのツリー表現を表示する、などといったことができます。SVGビューアの重要なコンポーネントのひとつはorg.apache.batik.swing.JSVGCanvas
コンポーネントで、これは任意のJavaアプリケーションでSVG表示機能を提供することができます。
SVG ラスタライザ は、ユーザーに、SVGファイルをJPEGやPNGのようなラスタ フォーマットにコンバートさせてくれます。これには拡張機構が備わっており、任意のラスタ フォーマットを追加することが出来ます。たとえば、このラスタライザは、あなたが特別なエフェクト(たとえば、シャドウ、グラデーション、などなど)を加えた1つのSVGファイルを作成してから、それをPNGイメージにして、その後SVGソースを変更したら(たとえば一部のテキストや色を変更したら)、そこから別のPNGイメージを生成することが出来ます。
こうして、あなたは簡単に共通のテーマやルック アンド フィールを提供する、一連のイメージを簡単に生成して、Webサイトに登録ことができます(参考までに、このラスタライザはWebサーバ上で利用して、これらのコンバートを自動的に行うこともできます)。
SVG フォント コンバータ は、ユーザーがTrue Typeフォント ファイルから、文字の集合を表すSVGフォントを簡単に作成させてくれます。このSVGフォント定義は、文字を利用しているドキュメント中に埋め込むことができます。これによって、ユーザーは、自ら包含してシステム フォントに依存しないようなSVGドキュメントを作成することができ、そのSVGファイルが全てのプラットフォームでオーサリングされたかのように正確に表示されることを保証してくれます。
SVG プリティ プリンタ は、SVGドキュメントを簡易印刷するための便利なツールであり、あなたが、任意の既存SVGドキュメントを再フォーマットして適切にフォーマットされた非常に読みやすいバージョンを作成することが出来るということを意味します。
これらのアプリケーションは、Batikがクライアントサイドで利用できる(ブラウザが任意のクライアントマシンで利用できる)ことも、サーバサイドで利用できる(ラスタライザが、SVGサポートのないクライアントマシンにSVGイメージを提供するために利用できる)ことも示しています。
SVGビューアとラスタライザは、Batikが可能にしているアプリケーションの種類の一部にすぎません。そのアーキテクチャは、異なるモジュール間において、異なる方法で利用されることを可能にしています。たとえば(他のベクトル フォーマット、たとえばPDFへの)トランスコーダのように、他のアプリケーションでも可能です。さらに、グラフィック ベクトル ツールキットが、XHTMLのような、他のグラフィック フォーマットをレンダリングするために用いられることも可能です。