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:


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


Inner 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  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  boolean indexed
          Should output Image be indexed .
protected  java.lang.String language
          Language
protected static float MAXIMUM_QUALITY
          Maximum quality value
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.
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()
           
 boolean getIndexed()
           
 java.lang.String getLanguage()
           
 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 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(boolean indexed)
          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 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

ERROR_CANNOT_COMPUTE_DESTINATION

public static final java.lang.String ERROR_CANNOT_COMPUTE_DESTINATION

ERROR_CANNOT_USE_DST_FILE

public static final java.lang.String ERROR_CANNOT_USE_DST_FILE

ERROR_CANNOT_ACCESS_TRANSCODER

public static final java.lang.String ERROR_CANNOT_ACCESS_TRANSCODER

ERROR_SOURCE_SAME_AS_DESTINATION

public static final java.lang.String ERROR_SOURCE_SAME_AS_DESTINATION

ERROR_CANNOT_READ_SOURCE

public static final java.lang.String ERROR_CANNOT_READ_SOURCE

ERROR_CANNOT_OPEN_SOURCE

public static final java.lang.String ERROR_CANNOT_OPEN_SOURCE

ERROR_OUTPUT_NOT_WRITEABLE

public static final java.lang.String ERROR_OUTPUT_NOT_WRITEABLE

ERROR_CANNOT_OPEN_OUTPUT_FILE

public static final java.lang.String ERROR_CANNOT_OPEN_OUTPUT_FILE

ERROR_UNABLE_TO_CREATE_OUTPUT_DIR

public static final java.lang.String ERROR_UNABLE_TO_CREATE_OUTPUT_DIR

ERROR_WHILE_RASTERIZING_FILE

public static final java.lang.String ERROR_WHILE_RASTERIZING_FILE

SVG_EXTENSION

protected static final java.lang.String SVG_EXTENSION
SVG file extension

DEFAULT_QUALITY

protected static final float DEFAULT_QUALITY
Default quality value. -1 means disabled

MAXIMUM_QUALITY

protected static final float MAXIMUM_QUALITY
Maximum quality value

DEFAULT_RESULT_TYPE

protected static final DestinationType DEFAULT_RESULT_TYPE
Default result type

DEFAULT_WIDTH

protected static final float DEFAULT_WIDTH
Default width

DEFAULT_HEIGHT

protected static final float DEFAULT_HEIGHT
Default height

destinationType

protected DestinationType destinationType
Result type

height

protected float height
Output image height.

width

protected float width
Output image width.

quality

protected float quality
Output image quality.

indexed

protected boolean 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

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()

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.

getQuality

public float getQuality()

setIndexed

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

getIndexed

public boolean 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()

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

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.

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.

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 © 2002 Apache Software Foundation. All Rights Reserved.