org.apache.batik.apps.rasterizer
Class SVGConverter

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

public class SVGConverter
extends 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:


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


Nested Class Summary
static class SVGConverter.SVGFileFilter
          Convenience class to filter svg files
 
Field Summary
protected  String allowedScriptTypes
          Set of allowed script types.
protected  String alternateStylesheet
          Alternate stylesheet for which should be applied to the SVG
protected  Rectangle2D area
          Output AOI area.
protected  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  String defaultFontFamily
          Default value for the font-family when it is unspecified
protected  DestinationType destinationType
          Result type
protected  File dst
          Destination image path.
static String ERROR_CANNOT_ACCESS_TRANSCODER
           
static String ERROR_CANNOT_COMPUTE_DESTINATION
           
static String ERROR_CANNOT_OPEN_OUTPUT_FILE
           
static String ERROR_CANNOT_OPEN_SOURCE
           
static String ERROR_CANNOT_READ_SOURCE
           
static String ERROR_CANNOT_USE_DST_FILE
           
static String ERROR_NO_SOURCES_SPECIFIED
           
static String ERROR_OUTPUT_NOT_WRITEABLE
           
static String ERROR_SOURCE_SAME_AS_DESTINATION
           
static String ERROR_UNABLE_TO_CREATE_OUTPUT_DIR
           
static String ERROR_WHILE_RASTERIZING_FILE
           
protected  boolean executeOnload
          Execute the 'onload' scripts flag
protected  List files
          Contents of fileset elements.
protected  float height
          Output image height.
protected  int indexed
          Should output Image be indexed .
protected  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  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  float snapshotTime
          Document time to seek to.
protected  List sources
          Sources files or URLs
protected static String SVG_EXTENSION
          SVG file extension
protected  String userStylesheet
          User stylesheet
protected  boolean validate
          Validation flag
protected  float width
          Output image width.
 
Constructor Summary
SVGConverter()
           
SVGConverter(SVGConverterController controller)
           
 
Method Summary
protected  List computeDstFiles(List 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  List 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  Map computeTranscodingHints()
          Computes the set of transcoding hints to use for the operation
protected  void createOutputDir(File output)
          Creates directories for output files if needed.
 void execute()
          Starts the conversion process.
 String getAllowedScriptTypes()
          Returns the list of allowed script types.
 String getAlternateStylesheet()
           
 Rectangle2D getArea()
           
 Color getBackgroundColor()
           
 boolean getConstrainScriptOrigin()
          Returns whether scripts can only be loaded from the same origin as the documents referencing them.
 String getDefaultFontFamily()
           
protected  String getDestinationFile(String file)
          Get the name of the result image file.
 DestinationType getDestinationType()
           
 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.
 String[] getFileNRef(String fileName)
           
 float getHeight()
           
 int getIndexed()
           
 String getLanguage()
           
 float getMaxHeight()
           
 float getMaxWidth()
           
 String getMediaType()
           
 float getPixelUnitToMillimeter()
           
 float getQuality()
           
 boolean getSecurityOff()
          Returns whether or not scripts will be run securely
 float getSnapshotTime()
          Returns the document to to seek to before rasterizing.
 List getSources()
           
 String getUserStylesheet()
           
 boolean getValidate()
           
 float getWidth()
           
protected  boolean isFile(File f)
          Returns true if f is a File.
protected  boolean isWriteable(File file)
          Checks if the application is allowed to write to the file.
 void setAllowedScriptTypes(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(String alternateStylesheet)
          Sets the alternateStyleSheet value.
 void setArea(Rectangle2D area)
          Sets the area as a Rectangle.
 void setBackgroundColor(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(String defaultFontFamily)
          Sets the defaultFontFamily value.
 void setDestinationType(DestinationType destinationType)
          Sets the destinationType attribute value.
 void setDst(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(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(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 setSnapshotTime(float t)
          Sets the document time to seek to before rasterizing.
 void setSources(String[] sources)
          Sets the list of individual SVG sources.
 void setUserStylesheet(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, 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 String ERROR_NO_SOURCES_SPECIFIED
See Also:
Constant Field Values

ERROR_CANNOT_COMPUTE_DESTINATION

public static final String ERROR_CANNOT_COMPUTE_DESTINATION
See Also:
Constant Field Values

ERROR_CANNOT_USE_DST_FILE

public static final String ERROR_CANNOT_USE_DST_FILE
See Also:
Constant Field Values

ERROR_CANNOT_ACCESS_TRANSCODER

public static final String ERROR_CANNOT_ACCESS_TRANSCODER
See Also:
Constant Field Values

ERROR_SOURCE_SAME_AS_DESTINATION

public static final String ERROR_SOURCE_SAME_AS_DESTINATION
See Also:
Constant Field Values

ERROR_CANNOT_READ_SOURCE

public static final String ERROR_CANNOT_READ_SOURCE
See Also:
Constant Field Values

ERROR_CANNOT_OPEN_SOURCE

public static final String ERROR_CANNOT_OPEN_SOURCE
See Also:
Constant Field Values

ERROR_OUTPUT_NOT_WRITEABLE

public static final String ERROR_OUTPUT_NOT_WRITEABLE
See Also:
Constant Field Values

ERROR_CANNOT_OPEN_OUTPUT_FILE

public static final String ERROR_CANNOT_OPEN_OUTPUT_FILE
See Also:
Constant Field Values

ERROR_UNABLE_TO_CREATE_OUTPUT_DIR

public static final String ERROR_UNABLE_TO_CREATE_OUTPUT_DIR
See Also:
Constant Field Values

ERROR_WHILE_RASTERIZING_FILE

public static final String ERROR_WHILE_RASTERIZING_FILE
See Also:
Constant Field Values

SVG_EXTENSION

protected static final String SVG_EXTENSION
SVG file extension

See Also:
Constant Field Values

DEFAULT_QUALITY

protected static final float DEFAULT_QUALITY
Default quality value. A value of -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 Rectangle2D area
Output AOI area.


language

protected String language
Language


userStylesheet

protected 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


snapshotTime

protected float snapshotTime
Document time to seek to.


allowedScriptTypes

protected 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 List sources
Sources files or URLs


dst

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


backgroundColor

protected Color backgroundColor
Background color for the output images.


mediaType

protected String mediaType
Media type for which the SVG image should be rendered


defaultFontFamily

protected String defaultFontFamily
Default value for the font-family when it is unspecified


alternateStylesheet

protected String alternateStylesheet
Alternate stylesheet for which should be applied to the SVG


files

protected List 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 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:
IllegalArgumentException

getQuality

public float getQuality()

setIndexed

public void setIndexed(int bits)
                throws IllegalArgumentException
Tells the PNG encoder to reduce the image to 256 colors, so the PNG file is indexed.

Throws:
IllegalArgumentException

getIndexed

public int getIndexed()

setLanguage

public void setLanguage(String language)
Sets the user language. If the value is null, then the default (see UserAgent.getLanguages()) is used.


getLanguage

public String getLanguage()

setUserStylesheet

public void setUserStylesheet(String userStylesheet)
Sets the user stylesheet. May be null.


getUserStylesheet

public 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(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 Rectangle2D getArea()

setSources

public void setSources(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 List getSources()

setDst

public void setDst(File dst)
When converting a single source, dst can be a file. Othewise, it should be a directory.


getDst

public File getDst()

setBackgroundColor

public void setBackgroundColor(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 Color getBackgroundColor()

setMediaType

public void setMediaType(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 String getMediaType()

setDefaultFontFamily

public void setDefaultFontFamily(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 String getDefaultFontFamily()

setAlternateStylesheet

public void setAlternateStylesheet(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 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.


setSnapshotTime

public void setSnapshotTime(float t)
Sets the document time to seek to before rasterizing.

Parameters:
t - the document time, in seconds

getSnapshotTime

public float getSnapshotTime()
Returns the document to to seek to before rasterizing.


setAllowedScriptTypes

public void setAllowedScriptTypes(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 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(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 List computeDstFiles(List 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 List 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 String[] getFileNRef(String fileName)

computeTranscodingHints

protected Map computeTranscodingHints()
Computes the set of transcoding hints to use for the operation


transcode

protected void transcode(SVGConverterSource inputFile,
                         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 String getDestinationFile(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(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(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 © 2008 Apache Software Foundation. All Rights Reserved.