## org.apache.batik.apps.rasterizer
Class SVGConverter

    java.lang.Object
      org.apache.batik.apps.rasterizer.SVGConverter

public class SVGConverter
extends java.lang.Object

This application can be used to convert SVG images to raster images.
Possible result raster image formats are PNG, JPEG, TIFF, and PDF. The Batik Transcoder API is used to execute the conversion. FOP is needed to be able to transcode to the PDF format
The source has to be list of files or URL (set by the `setSources` method).
The destination can be:

- unspecified. In that case, only file sources can be converted and a file in the same directory as the source will be created.
- a directory, set by the `setDst` method. In that case, the output files are created in that destination directory
- a file. In case there is a single source, the destination can be a single named file (set with the `setDst` method.
)

There are a number of options which control the way the image is converted to the destination format:

- destinationType: controls the type of conversion which should be done. see the `DestinationType` documentation.
- width/height: they control the desired width and height, in user space, for the output image.
- maxWidth/maxHeight: control the maximum width and height, in user space, of the output image.
- area: controls the specific sub-area of the image which should be rendered.
- backgroundColor: controls the color which is used to fill the background before rendering the image
- quality: relevant only for JPEG destinations, this controls the encoding quality.
- indexed: relevant only for PNG, controls the number of bits used in writting of a palletized files.
- mediaType: controls the CSS media, or list of media, for which the image should be rendered.
- alternate: controls the alternate CSS stylesheet to activate, if any.
- language: controls the user language with which the SVG document should be converted.
- userStylesheet: defines the user stylesheet to apply to SVG documents in addition to other stylesheets referenced by or embedded in the SVG documents.
- pixelUnitToMillimeter: defines the size of a pixel in millimeters to use when processing the SVG documents.

Nested Class Summary
`static class` `SVGConverter.SVGFileFilter` Convenience class to filter svg files

Field Summary
`protected java.lang.String` `allowedScriptTypes` Set of allowed script types.
`protected java.lang.String` `alternateStylesheet` Alternate stylesheet for which should be applied to the SVG
`protected java.awt.geom.Rectangle2D` `area` Output AOI area.
`protected java.awt.Color` `backgroundColor` Background color for the output images.
`protected boolean` `constrainScriptOrigin` Controls whether scripts can only have the same origin as the document which references them.
`protected SVGConverterController` `controller` Controls some aspects of the converter's operation, such as whether or not it should proceed in some error situations.
`protected static float` `DEFAULT_HEIGHT` Default height
`protected static float` `DEFAULT_QUALITY` Default quality value.
`protected static DestinationType` `DEFAULT_RESULT_TYPE` Default result type
`protected static float` `DEFAULT_WIDTH` Default width
`protected java.lang.String` `defaultFontFamily` Default value for the font-family when it is unspecified
`protected DestinationType` `destinationType` Result type
`protected java.io.File` `dst` Destination image path.
`static java.lang.String` `ERROR_CANNOT_ACCESS_TRANSCODER`
`static java.lang.String` `ERROR_CANNOT_COMPUTE_DESTINATION`
`static java.lang.String` `ERROR_CANNOT_OPEN_OUTPUT_FILE`
`static java.lang.String` `ERROR_CANNOT_OPEN_SOURCE`
`static java.lang.String` `ERROR_CANNOT_READ_SOURCE`
`static java.lang.String` `ERROR_CANNOT_USE_DST_FILE`
`static java.lang.String` `ERROR_NO_SOURCES_SPECIFIED`
`static java.lang.String` `ERROR_OUTPUT_NOT_WRITEABLE`
`static java.lang.String` `ERROR_SOURCE_SAME_AS_DESTINATION`
`static java.lang.String` `ERROR_UNABLE_TO_CREATE_OUTPUT_DIR`
`static java.lang.String` `ERROR_WHILE_RASTERIZING_FILE`
`protected boolean` `executeOnload` Execute the 'onload' scripts flag
`protected java.util.Vector` `files` Contents of `fileset` elements.
`protected float` `height` Output image height.
`protected int` `indexed` Should output Image be indexed .
`protected java.lang.String` `language` Language
`protected float` `maxHeight` Maximum output image height.
`protected static float` `MAXIMUM_QUALITY` Maximum quality value
`protected float` `maxWidth` Maximum output image width.
`protected java.lang.String` `mediaType` Media type for which the SVG image should be rendered
`protected float` `pixelUnitToMillimeter` Millimeters Per Pixel
`protected float` `quality` Output image quality.
`protected boolean` `securityOff` Controls whether scripts should be run securely or not
`protected java.util.Vector` `sources` Sources files or URLs
`protected static java.lang.String` `SVG_EXTENSION` SVG file extension
`protected java.lang.String` `userStylesheet` User stylesheet
`protected boolean` `validate` Validation flag
`protected float` `width` Output image width.

Constructor Summary
`SVGConverter()`
`SVGConverter(SVGConverterController controller)`

Method Summary
`protected java.util.Vector` `computeDstFiles(java.util.Vector sources)` Populates a vector with destination files names computed from the names of the files in the sources vector and the value of the dst property
`protected java.util.Vector` `computeSources()` Populates a vector with the set of SVG files from the srcDir if it is not null and with the sources (files or URLs) if any.
`protected java.util.Map` `computeTranscodingHints()` Computes the set of transcoding hints to use for the operation
`protected void` `createOutputDir(java.io.File output)` Creates directories for output files if needed.
`void` `execute()` Starts the conversion process.
`java.lang.String` `getAllowedScriptTypes()` Returns the list of allowed script types.
`java.lang.String` `getAlternateStylesheet()`
`java.awt.geom.Rectangle2D` `getArea()`
`java.awt.Color` `getBackgroundColor()`
`boolean` `getConstrainScriptOrigin()` Returns whether scripts can only be loaded from the same origin as the documents referencing them.
`java.lang.String` `getDefaultFontFamily()`
`protected java.lang.String` `getDestinationFile(java.lang.String file)` Get the name of the result image file.
`DestinationType` `getDestinationType()`
`java.io.File` `getDst()`
`boolean` `getExecuteOnload()` Returns true if the scripts attached to the DOM using 'onload' event attribute is going to be executed before rasterizing, false otherwise.
`java.lang.String[]` `getFileNRef(java.lang.String fileName)`
`float` `getHeight()`
`int` `getIndexed()`
`java.lang.String` `getLanguage()`
`float` `getMaxHeight()`
`float` `getMaxWidth()`
`java.lang.String` `getMediaType()`
`float` `getPixelUnitToMillimeter()`
`float` `getQuality()`
`boolean` `getSecurityOff()` Returns whether or not scripts will be run securely
`java.util.Vector` `getSources()`
`java.lang.String` `getUserStylesheet()`
`boolean` `getValidate()`
`float` `getWidth()`
`protected boolean` `isFile(java.io.File f)` Returns true if f is a File.
`protected boolean` `isWriteable(java.io.File file)` Checks if the application is allowed to write to the file.
`void` `setAllowedScriptTypes(java.lang.String allowedScriptTypes)` Sets the set of allowed script types (i.e., the set of possible values for the type attribute in the <script> element), as a comma separated list of allowed values.
`void` `setAlternateStylesheet(java.lang.String alternateStylesheet)` Sets the `alternateStyleSheet` value.
`void` `setArea(java.awt.geom.Rectangle2D area)` Sets the `area` as a Rectangle.
`void` `setBackgroundColor(java.awt.Color backgroundColor)` Sets the `backgroundColor` value.
`void` `setConstrainScriptOrigin(boolean constrainScriptOrigin)` Sets whether scripts should only be loaded from the same location as the documents referencing them.
`void` `setDefaultFontFamily(java.lang.String defaultFontFamily)` Sets the `defaultFontFamily` value.
`void` `setDestinationType(DestinationType destinationType)` Sets the `destinationType` attribute value.
`void` `setDst(java.io.File dst)` When converting a single source, dst can be a file.
`void` `setExecuteOnload(boolean b)` Sets whether or not scripts attached to the DOM using 'onload' event attribute must be executed before rasterizing.
`void` `setHeight(float height)` In less than or equal to zero, the height is not constrained on the output image.
`void` `setIndexed(int bits)` Tells the PNG encoder to reduce the image to 256 colors, so the PNG file is indexed.
`void` `setLanguage(java.lang.String language)` Sets the user language.
`void` `setMaxHeight(float height)` If less than or equal to zero, the maximum height does not have any effect on the output image.
`void` `setMaxWidth(float width)` If less than or equal to zero, the maximum width does not have any effect on the output image.
`void` `setMediaType(java.lang.String mediaType)` Sets the `mediaType` value.
`void` `setPixelUnitToMillimeter(float pixelUnitToMillimeter)` Sets the millimeters per pixel constant.
`void` `setQuality(float quality)` Sets the JPEG encoding quality.
`void` `setSecurityOff(boolean securityOff)` Sets whether or not scripts should be run securely
`void` `setSources(java.lang.String[] sources)` Sets the list of individual SVG sources.
`void` `setUserStylesheet(java.lang.String userStylesheet)` Sets the user stylesheet.
`void` `setValidate(boolean validate)` Defines whether or not input sources should be validated in the conversion process
`void` `setWidth(float width)` In less than or equal to zero, the width is not constrained on the output image.
`protected void` `transcode(SVGConverterSource inputFile, java.io.File outputFile, Transcoder transcoder)` Converts the input image to the result image.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### ERROR_NO_SOURCES_SPECIFIED

    public static final java.lang.String ERROR_NO_SOURCES_SPECIFIED

See Also:
  Constant Field Values

### ERROR_CANNOT_COMPUTE_DESTINATION

    public static final java.lang.String ERROR_CANNOT_COMPUTE_DESTINATION

See Also:
  Constant Field Values

### ERROR_CANNOT_USE_DST_FILE

    public static final java.lang.String ERROR_CANNOT_USE_DST_FILE

See Also:
  Constant Field Values

### ERROR_CANNOT_ACCESS_TRANSCODER

    public static final java.lang.String ERROR_CANNOT_ACCESS_TRANSCODER

See Also:
  Constant Field Values

### ERROR_SOURCE_SAME_AS_DESTINATION

    public static final java.lang.String ERROR_SOURCE_SAME_AS_DESTINATION

See Also:
  Constant Field Values

### ERROR_CANNOT_READ_SOURCE

    public static final java.lang.String ERROR_CANNOT_READ_SOURCE

See Also:
  Constant Field Values

### ERROR_CANNOT_OPEN_SOURCE

    public static final java.lang.String ERROR_CANNOT_OPEN_SOURCE

See Also:
  Constant Field Values

### ERROR_OUTPUT_NOT_WRITEABLE

    public static final java.lang.String ERROR_OUTPUT_NOT_WRITEABLE

See Also:
  Constant Field Values

### ERROR_CANNOT_OPEN_OUTPUT_FILE

    public static final java.lang.String ERROR_CANNOT_OPEN_OUTPUT_FILE

See Also:
  Constant Field Values

### ERROR_UNABLE_TO_CREATE_OUTPUT_DIR

    public static final java.lang.String ERROR_UNABLE_TO_CREATE_OUTPUT_DIR

See Also:
  Constant Field Values

### ERROR_WHILE_RASTERIZING_FILE

    public static final java.lang.String ERROR_WHILE_RASTERIZING_FILE

See Also:
  Constant Field Values

### SVG_EXTENSION

    protected static final java.lang.String SVG_EXTENSION

  SVG file extension

  See Also:
    Constant Field Values

### DEFAULT_QUALITY

    protected static final float DEFAULT_QUALITY

  Default quality value. -1 means disabled

  See Also:
    Constant Field Values

### MAXIMUM_QUALITY

    protected static final float MAXIMUM_QUALITY

  Maximum quality value

  See Also:
    Constant Field Values

### DEFAULT_RESULT_TYPE

    protected static final DestinationType DEFAULT_RESULT_TYPE

  Default result type

### DEFAULT_WIDTH

    protected static final float DEFAULT_WIDTH

  Default width

  See Also:
    Constant Field Values

### DEFAULT_HEIGHT

    protected static final float DEFAULT_HEIGHT

  Default height

  See Also:
    Constant Field Values

### destinationType

    protected DestinationType destinationType

  Result type

### height

    protected float height

  Output image height.

### width

    protected float width

  Output image width.

### maxHeight

    protected float maxHeight

  Maximum output image height.

### maxWidth

    protected float maxWidth

  Maximum output image width.

### quality

    protected float quality

  Output image quality.

### indexed

    protected int indexed

  Should output Image be indexed .

### area

    protected java.awt.geom.Rectangle2D area

  Output AOI area.

### language

    protected java.lang.String language

  Language

### userStylesheet

    protected java.lang.String userStylesheet

  User stylesheet

### pixelUnitToMillimeter

    protected float pixelUnitToMillimeter

  Millimeters Per Pixel

### validate

    protected boolean validate

  Validation flag

### executeOnload

    protected boolean executeOnload

  Execute the 'onload' scripts flag

### allowedScriptTypes

    protected java.lang.String allowedScriptTypes

  Set of allowed script types.

### constrainScriptOrigin

    protected boolean constrainScriptOrigin

  Controls whether scripts can only have the same origin as the document which references them.

### securityOff

    protected boolean securityOff

  Controls whether scripts should be run securely or not

### sources

    protected java.util.Vector sources

  Sources files or URLs

### dst

    protected java.io.File dst

  Destination image path. Can be a file (for single source) or a directory

### backgroundColor

    protected java.awt.Color backgroundColor

  Background color for the output images.

### mediaType

    protected java.lang.String mediaType

  Media type for which the SVG image should be rendered

### defaultFontFamily

    protected java.lang.String defaultFontFamily

  Default value for the font-family when it is unspecified

### alternateStylesheet

    protected java.lang.String alternateStylesheet

  Alternate stylesheet for which should be applied to the SVG

### files

    protected java.util.Vector files

  Contents of `fileset` elements.

### controller

    protected SVGConverterController controller

  Controls some aspects of the converter's operation, such as whether or not it should proceed in some error situations. See `SVGConverterController`

Constructor Detail

### SVGConverter

    public SVGConverter()

### SVGConverter

    public SVGConverter(SVGConverterController controller)

Method Detail

### setDestinationType

    public void setDestinationType(DestinationType destinationType)

  Sets the `destinationType` attribute value. Should not be null.

### getDestinationType

    public DestinationType getDestinationType()

### setHeight

    public void setHeight(float height)

  In less than or equal to zero, the height is not constrained on the output image. The height is in user space.

### getHeight

    public float getHeight()

### setWidth

    public void setWidth(float width)

  In less than or equal to zero, the width is not constrained on the output image. The width is in user space.

### getWidth

    public float getWidth()

### setMaxHeight

    public void setMaxHeight(float height)

  If less than or equal to zero, the maximum height does not have any effect on the output image. The maximum height is in user space.

### getMaxHeight

    public float getMaxHeight()

### setMaxWidth

    public void setMaxWidth(float width)

  If less than or equal to zero, the maximum width does not have any effect on the output image. The maximum width is in user space.

### getMaxWidth

    public float getMaxWidth()

### setQuality

    public void setQuality(float quality)
                    throws java.lang.IllegalArgumentException

  Sets the JPEG encoding quality. The value should be strictly less than 1. If the value is less than zero, then the maximum encoding quality is used.

  Throws:
    `java.lang.IllegalArgumentException`

### getQuality

    public float getQuality()

### setIndexed

    public void setIndexed(int bits)
                    throws java.lang.IllegalArgumentException

  Tells the PNG encoder to reduce the image to 256 colors, so the PNG file is indexed.

  Throws:
    `java.lang.IllegalArgumentException`

### getIndexed

    public int getIndexed()

### setLanguage

    public void setLanguage(java.lang.String language)

  Sets the user language. If the value is null, then the default (see `UserAgent.getLanguages()`) is used.

### getLanguage

    public java.lang.String getLanguage()

### setUserStylesheet

    public void setUserStylesheet(java.lang.String userStylesheet)

  Sets the user stylesheet. May be null.

### getUserStylesheet

    public java.lang.String getUserStylesheet()

### setPixelUnitToMillimeter

    public void setPixelUnitToMillimeter(float pixelUnitToMillimeter)

  Sets the millimeters per pixel constant. A negative value will cause the default value (see `UserAgent.getPixelUnitToMillimeter()`) to be used.

### getPixelUnitToMillimeter

    public float getPixelUnitToMillimeter()

### setArea

    public void setArea(java.awt.geom.Rectangle2D area)

  Sets the `area` as a Rectangle. This value can be null in which case the whole image will be rendered. If the area is not null, then only the portion of the image it defines will be rendered.

### getArea

    public java.awt.geom.Rectangle2D getArea()

### setSources

    public void setSources(java.lang.String[] sources)

  Sets the list of individual SVG sources. The strings can be either URLs or file names. Note that invalid sources (e.g., read-protected files or invalid URLs) will cause `SVGConverterExceptions` to be thrown during the transcoding process (see `execute()`);

### getSources

    public java.util.Vector getSources()

### setDst

    public void setDst(java.io.File dst)

  When converting a single source, dst can be a file. Othewise, it should be a directory.

### getDst

    public java.io.File getDst()

### setBackgroundColor

    public void setBackgroundColor(java.awt.Color backgroundColor)

  Sets the `backgroundColor` value. This can be null in which case no color will be used to fill the background before rendering this SVG image.

### getBackgroundColor

    public java.awt.Color getBackgroundColor()

### setMediaType

    public void setMediaType(java.lang.String mediaType)

  Sets the `mediaType` value. This value controls the CSS media for which the image should be rendered. It can be null, in which case no specific media selectors will apply. If it is not null, it can contain space separated values of the medias for which the image should be rendered. For example, "screen", "print" or "scree projection" are valid values.

### getMediaType

    public java.lang.String getMediaType()

### setDefaultFontFamily

    public void setDefaultFontFamily(java.lang.String defaultFontFamily)

  Sets the `defaultFontFamily` value. This value controls the default value for the font-family CSS property when that property is unspecified.

### getDefaultFontFamily

    public java.lang.String getDefaultFontFamily()

### setAlternateStylesheet

    public void setAlternateStylesheet(java.lang.String alternateStylesheet)

  Sets the `alternateStyleSheet` value. This value controls the CSS alternate stylesheet to select in the rendered SVG file(s). It may be null, in which case no alternate stylesheet will be selected.

### getAlternateStylesheet

    public java.lang.String getAlternateStylesheet()

### setValidate

    public void setValidate(boolean validate)

  Defines whether or not input sources should be validated in the conversion process

### getValidate

    public boolean getValidate()

### setExecuteOnload

    public void setExecuteOnload(boolean b)

  Sets whether or not scripts attached to the DOM using 'onload' event attribute must be executed before rasterizing.

  Parameters:
    `b` - true means scripts will be executed

### getExecuteOnload

    public boolean getExecuteOnload()

  Returns true if the scripts attached to the DOM using 'onload' event attribute is going to be executed before rasterizing, false otherwise.

### setAllowedScriptTypes

    public void setAllowedScriptTypes(java.lang.String allowedScriptTypes)

  Sets the set of allowed script types (i.e., the set of possible values for the type attribute in the <script> element), as a comma separated list of allowed values.

### getAllowedScriptTypes

    public java.lang.String getAllowedScriptTypes()

  Returns the list of allowed script types.

  See Also:
    `setAllowedScriptTypes(java.lang.String)`

### setConstrainScriptOrigin

    public void setConstrainScriptOrigin(boolean constrainScriptOrigin)

  Sets whether scripts should only be loaded from the same location as the documents referencing them.

### getConstrainScriptOrigin

    public boolean getConstrainScriptOrigin()

  Returns whether scripts can only be loaded from the same origin as the documents referencing them.

### setSecurityOff

    public void setSecurityOff(boolean securityOff)

  Sets whether or not scripts should be run securely

### getSecurityOff

    public boolean getSecurityOff()

  Returns whether or not scripts will be run securely

### isFile

    protected boolean isFile(java.io.File f)

  Returns true if f is a File. f is found to be a file if it exists and is a file. If it does not exist, it is declared to be a file if it has the same extension as the DestinationType.

### execute

    public void execute()
                 throws SVGConverterException

  Starts the conversion process.

  Throws:
    `SVGConverterException` - thrown if parameters are not set correctly.

### computeDstFiles

    protected java.util.Vector computeDstFiles(java.util.Vector sources)
                                        throws SVGConverterException

  Populates a vector with destination files names computed from the names of the files in the sources vector and the value of the dst property

  Throws:
    `SVGConverterException`

### computeSources

    protected java.util.Vector computeSources()
                                       throws SVGConverterException

  Populates a vector with the set of SVG files from the srcDir if it is not null and with the sources (files or URLs) if any.

  Throws:
    `SVGConverterException`

### getFileNRef

    public java.lang.String[] getFileNRef(java.lang.String fileName)

### computeTranscodingHints

    protected java.util.Map computeTranscodingHints()

  Computes the set of transcoding hints to use for the operation

### transcode

    protected void transcode(SVGConverterSource inputFile,
                             java.io.File outputFile,
                             Transcoder transcoder)
                      throws SVGConverterException

  Converts the input image to the result image. with the given transcoder. If a failure happens, the controller is notified and decides whether to proceed or not. If it decides to proceed, the converter will continue processing other files. Otherwise, it will throw an exception.

  Throws:
    `SVGConverterException`

### getDestinationFile

    protected java.lang.String getDestinationFile(java.lang.String file)

  Get the name of the result image file.

  This method modifies the result filename, it changes the existing suffix to correspong the result file type. It also adds the suffix if the file doesn't have one.

  Parameters:
    `file` - Result file name as a String object.
  Returns:
    Name of the file. The directory of the file is not returned. The returned string is empty if the parameter is not a file.

### createOutputDir

    protected void createOutputDir(java.io.File output)
                            throws SVGConverterException

  Creates directories for output files if needed.

  Parameters:
    `output` - Output file with path.
  Throws:
    `SVGConverterException` - Output directory doesn't exist and it can't be created.

### isWriteable

    protected boolean isWriteable(java.io.File file)

  Checks if the application is allowed to write to the file.

  Parameters:
    `file` - File to be checked.
  Returns:
    `true` if the file is writeable and `false` otherwise.

Copyright © 2004 Apache Software Foundation. All Rights Reserved.