Title: SVG Pretty Printer #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 { #downloading} Refer to the [install page](../install.html) and the [download page](/batik/download.html) 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 { #using} 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 { #using-binary} 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 { #using-source} 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”](#using-binary) for an explanation of these options.