Package org.apache.batik.apps.rasterizer
Class SVGConverter
java.lang.Object
org.apache.batik.apps.rasterizer.SVGConverter
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
The destination can be:
There are a number of options which control the way the image is converted to the destination format:
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.
- Version:
- $Id: SVGConverter.java 1871084 2019-12-09 12:24:18Z ssteiner $
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Convenience class to filter svg files -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected String
Set of allowed script types.protected boolean
protected String
Alternate stylesheet for which should be applied to the SVGprotected Rectangle2D
Output AOI area.protected Color
Background color for the output images.protected boolean
Controls whether scripts can only have the same origin as the document which references them.protected SVGConverterController
Controls some aspects of the converter's operation, such as whether or not it should proceed in some error situations.protected static final float
Default heightprotected static final float
Default quality value.protected static final DestinationType
Default result typeprotected static final float
Default widthprotected String
Default value for the font-family when it is unspecifiedprotected DestinationType
Result typeprotected File
Destination image path.static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
protected boolean
Execute the 'onload' scripts flagprotected List
Contents offileset
elements.protected float
Output image height.protected int
Should output Image be indexed .protected String
Languageprotected float
Maximum output image height.protected static final float
Maximum quality valueprotected float
Maximum output image width.protected String
Media type for which the SVG image should be renderedprotected float
Millimeters Per Pixelprotected float
Output image quality.protected boolean
Controls whether scripts should be run securely or notprotected float
Document time to seek to.protected List
Sources files or URLsprotected static final String
SVG file extensionprotected String
User stylesheetprotected boolean
Validation flagprotected float
Output image width. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected 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 propertyprotected List
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
Computes the set of transcoding hints to use for the operationprotected void
createOutputDir
(File output) Creates directories for output files if needed.void
execute()
Starts the conversion process.Returns the list of allowed script types.getArea()
boolean
Returns whether scripts can only be loaded from the same origin as the documents referencing them.protected String
getDestinationFile
(String file) Get the name of the result image file.getDst()
boolean
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
int
float
float
float
float
boolean
Returns whether or not scripts will be run securelyfloat
Returns the document to to seek to before rasterizing.boolean
float
getWidth()
protected boolean
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 thealternateStyleSheet
value.void
setArea
(Rectangle2D area) Sets thearea
as a Rectangle.void
setBackgroundColor
(Color backgroundColor) Sets thebackgroundColor
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 thedefaultFontFamily
value.void
setDestinationType
(DestinationType destinationType) Sets thedestinationType
attribute value.void
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 themediaType
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 securelyvoid
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 processvoid
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.
-
Field Details
-
ERROR_NO_SOURCES_SPECIFIED
- See Also:
-
ERROR_CANNOT_COMPUTE_DESTINATION
- See Also:
-
ERROR_CANNOT_USE_DST_FILE
- See Also:
-
ERROR_CANNOT_ACCESS_TRANSCODER
- See Also:
-
ERROR_SOURCE_SAME_AS_DESTINATION
- See Also:
-
ERROR_CANNOT_READ_SOURCE
- See Also:
-
ERROR_CANNOT_OPEN_SOURCE
- See Also:
-
ERROR_OUTPUT_NOT_WRITEABLE
- See Also:
-
ERROR_CANNOT_OPEN_OUTPUT_FILE
- See Also:
-
ERROR_UNABLE_TO_CREATE_OUTPUT_DIR
- See Also:
-
ERROR_WHILE_RASTERIZING_FILE
- See Also:
-
SVG_EXTENSION
SVG file extension- See Also:
-
DEFAULT_QUALITY
protected static final float DEFAULT_QUALITYDefault quality value. A value of -1 means disabled.- See Also:
-
MAXIMUM_QUALITY
protected static final float MAXIMUM_QUALITYMaximum quality value- See Also:
-
DEFAULT_RESULT_TYPE
Default result type -
DEFAULT_WIDTH
protected static final float DEFAULT_WIDTHDefault width- See Also:
-
DEFAULT_HEIGHT
protected static final float DEFAULT_HEIGHTDefault height- See Also:
-
destinationType
Result type -
height
protected float heightOutput image height. -
width
protected float widthOutput image width. -
maxHeight
protected float maxHeightMaximum output image height. -
maxWidth
protected float maxWidthMaximum output image width. -
quality
protected float qualityOutput image quality. -
indexed
protected int indexedShould output Image be indexed . -
area
Output AOI area. -
language
Language -
userStylesheet
User stylesheet -
pixelUnitToMillimeter
protected float pixelUnitToMillimeterMillimeters Per Pixel -
validate
protected boolean validateValidation flag -
executeOnload
protected boolean executeOnloadExecute the 'onload' scripts flag -
snapshotTime
protected float snapshotTimeDocument time to seek to. -
allowedScriptTypes
Set of allowed script types. -
constrainScriptOrigin
protected boolean constrainScriptOriginControls whether scripts can only have the same origin as the document which references them. -
allowExternalResources
protected boolean allowExternalResources -
securityOff
protected boolean securityOffControls whether scripts should be run securely or not -
sources
Sources files or URLs -
dst
Destination image path. Can be a file (for single source) or a directory -
backgroundColor
Background color for the output images. -
mediaType
Media type for which the SVG image should be rendered -
defaultFontFamily
Default value for the font-family when it is unspecified -
alternateStylesheet
Alternate stylesheet for which should be applied to the SVG -
files
Contents offileset
elements. -
controller
Controls some aspects of the converter's operation, such as whether or not it should proceed in some error situations. SeeSVGConverterController
-
-
Constructor Details
-
SVGConverter
public SVGConverter() -
SVGConverter
-
-
Method Details
-
setDestinationType
Sets thedestinationType
attribute value. Should not be null. -
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
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
Tells the PNG encoder to reduce the image to 256 colors, so the PNG file is indexed.- Throws:
IllegalArgumentException
-
getIndexed
public int getIndexed() -
setLanguage
Sets the user language. If the value is null, then the default (seeUserAgent.getLanguages()
) is used. -
getLanguage
-
setUserStylesheet
Sets the user stylesheet. May be null. -
getUserStylesheet
-
setPixelUnitToMillimeter
public void setPixelUnitToMillimeter(float pixelUnitToMillimeter) Sets the millimeters per pixel constant. A negative value will cause the default value (seeUserAgent.getPixelUnitToMillimeter()
) to be used. -
getPixelUnitToMillimeter
public float getPixelUnitToMillimeter() -
setArea
Sets thearea
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
-
setSources
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 causeSVGConverterExceptions
to be thrown during the transcoding process (seeexecute()
); -
getSources
-
setDst
When converting a single source, dst can be a file. Othewise, it should be a directory. -
getDst
-
setBackgroundColor
Sets thebackgroundColor
value. This can be null in which case no color will be used to fill the background before rendering this SVG image. -
getBackgroundColor
-
setMediaType
Sets themediaType
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
-
setDefaultFontFamily
Sets thedefaultFontFamily
value. This value controls the default value for the font-family CSS property when that property is unspecified. -
getDefaultFontFamily
-
setAlternateStylesheet
Sets thealternateStyleSheet
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
-
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
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
Returns the list of allowed script types.- See Also:
-
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
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
Starts the conversion process.- Throws:
SVGConverterException
- thrown if parameters are not set correctly.
-
computeDstFiles
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
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
-
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
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
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
Checks if the application is allowed to write to the file.- Parameters:
file
- File to be checked.- Returns:
true
if the file is writeable andfalse
otherwise.
-