The Apache FOP Project

The Apache™ Batik Project

SVG Pretty Printer

This page describes the features of the SVG pretty printer utility that comes with the Batik distribution. The SVG pretty printer is a utility that can format SVG files. The tool formats an SVG document according to the arguments passed on the command line.

Downloading the pretty printer

Refer to the install page and the download page to find out what to download and how to download it. Remember that you can get either the source or binary distribution.

Pretty printing an SVG file

The method for starting the pretty-printer depends on the distribution of Batik that you chose to download. The following describes how to run the pretty printer for each distribution.

Using the binary distribution

If you downloaded the binary distribution of Batik, you should have a file called batik-1.6.zip (or similar), and, after expanding that file, a jar file called batik-svgpp.jar. To start the pretty printer, open a console, change to the directory where you expanded the distribution (and where batik-svgpp.jar is located) and simply type the following at the command prompt:

java -jar batik-svgpp.jar [OPTIONS] FILES

For example, if you type:

java -jar batik-svgpp.jar samples/batikFX.svg

you will see the indented document written to standard output.

For the options:

-newline cr | cr-lf | lf : specifies the newline character(s) generated in the printed document, the default being lf (Unix-style newlines),

-tab-width number : specifies the tabulation width, the default being 4,

-doc-width number : specifies the maximum number of columns for the whole document, the default being 80,

-no-format : specifies that the current indentation should be preserved, useful for performing doctype or newline substitutions,

-xml-decl string : specifies the XML declaration,

-doctype change | remove : specifies whether the doctype should be changed or removed,

-publid-id string : specifies the public ID to in the doctype declaration, when -doctype change is specified, and

-system-id string : specifies the system ID to in the doctype declaration, when -doctype change is specified.

For example:

java -jar batik-svgpp.jar -tab-width 2 -newline cr-lf src.svg dest.svg

will format src.svg and write it to dest.svg using a tabulation width of 2 and Windows-style newlines, and:

java -jar batik-svgpp.jar -no-format -doctype change -public-id "-//W3C//DTD SVG 1.1//EN" \
     -system-id "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" src.svg dest.svg

will format src.svg and write it to dest.svg unchanged, except for the doctype public and system IDs, which will be replaced by those specified.

Using the source distribution

If you downloaded the source distribution of Batik, you will have a zip or tar file that expanded into a directory called xml-batik or batik-version. In that directory, you can find build scripts for the platform you are running on. For example, there is a build.bat script for users of the Windows platform and there is a build.sh script for UNIX users.

To start the pretty printer you should:

- Make sure that your JAVA_HOME environment variable is set to your JDK installation directory.

- Open a command line window and go to the xml-batik or batik-version directory where the Batik distribution was expanded.

- For Windows, type the following at the command prompt:

build svgpp

and for Unix:

./build.sh svgpp

This will print out a help message for the pretty printer.

You can pass options to the rasterizer as follows, for Windows:

build svgpp [OPTIONS] FILES

and for Unix:

./build.sh svgpp [OPTIONS] FILES

Refer to “Using the binary distribution” for an explanation of these options.