Class FopFactory
- java.lang.Object
-
- org.apache.fop.apps.FopFactory
-
- All Implemented Interfaces:
org.apache.xmlgraphics.image.loader.ImageContext
public class FopFactory extends java.lang.Object implements org.apache.xmlgraphics.image.loader.ImageContextFactory class which instantiates new Fop and FOUserAgent instances. This class also holds environmental information and configuration used by FOP. Information that may potentially be different for each rendering run can be found and managed in the FOUserAgent.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaddElementMapping(org.apache.fop.fo.ElementMapping elementMapping)Add the element mapping with the given class name.java.lang.StringgetBaseURL()Returns the base URL.java.awt.color.ColorSpacegetColorSpace(java.lang.String baseUri, java.lang.String iccProfileSrc)Create (if needed) and return an ICC ColorSpace instance.org.apache.fop.util.ContentHandlerFactoryRegistrygetContentHandlerFactoryRegistry()org.apache.fop.fo.ElementMappingRegistrygetElementMappingRegistry()java.lang.StringgetFontBaseURL()Deprecated.use getFontManager().setFontBaseURL(fontBase) insteadorg.apache.fop.fonts.FontCachegetFontCache()Deprecated.use getFontManager().getFontCache() insteadorg.apache.fop.fonts.FontManagergetFontManager()Returns the font manager.FOURIResolvergetFOURIResolver()Returns the FO URI Resolver.org.apache.fop.hyphenation.HyphenationTreeResolvergetHyphenationTreeResolver()java.lang.StringgetHyphenBaseURL()java.util.SetgetIgnoredNamespace()org.apache.fop.render.ImageHandlerRegistrygetImageHandlerRegistry()org.apache.xmlgraphics.image.loader.ImageManagergetImageManager()Returns the image manager.org.apache.fop.layoutmgr.LayoutManagerMakergetLayoutManagerMakerOverride()Returns the overriding LayoutManagerMaker instance, if any.java.lang.StringgetPageHeight()Gets the default page-height to use as fallback, in case page-height="auto"java.lang.StringgetPageWidth()Gets the default page-width to use as fallback, in case page-width="auto"org.apache.fop.render.RendererFactorygetRendererFactory()floatgetSourcePixelUnitToMillimeter()Returns the conversion factor from pixel units to millimeters.floatgetSourceResolution()floatgetTargetPixelUnitToMillimeter()Returns the conversion factor from pixel units to millimeters.floatgetTargetResolution()javax.xml.transform.URIResolvergetURIResolver()Returns the URI Resolver.org.apache.avalon.framework.configuration.ConfigurationgetUserConfig()Get the user configuration.org.apache.fop.render.XMLHandlerRegistrygetXMLHandlerRegistry()voidignoreNamespace(java.lang.String namespaceURI)Adds a namespace to the set of ignored namespaces.voidignoreNamespaces(java.util.Collection namespaceURIs)Adds a collection of namespaces to the set of ignored namespaces.booleanisBase14KerningEnabled()Deprecated.use getFontManager().isBase14KerningEnabled() insteadbooleanisBreakIndentInheritanceOnReferenceAreaBoundary()booleanisNamespaceIgnored(java.lang.String namespaceURI)Indicates whether a namespace URI is on the ignored list.FopnewFop(java.lang.String outputFormat)Returns a newFopinstance.FopnewFop(java.lang.String outputFormat, java.io.OutputStream stream)Returns a newFopinstance.FopnewFop(java.lang.String outputFormat, FOUserAgent userAgent)Returns a newFopinstance.FopnewFop(java.lang.String outputFormat, FOUserAgent userAgent, java.io.OutputStream stream)Returns a newFopinstance.FopnewFop(FOUserAgent userAgent)Returns a newFopinstance.FOUserAgentnewFOUserAgent()Returns a new FOUserAgent instance.static FopFactorynewInstance()Returns a new FopFactory instance.javax.xml.transform.SourceresolveURI(java.lang.String href, java.lang.String baseUri)Attempts to resolve the given URI.voidsetBase14KerningEnabled(boolean value)Deprecated.use getFontManager().setBase14KerningEnabled(boolean) insteadvoidsetBaseURL(java.lang.String base)Sets the base URL.voidsetBreakIndentInheritanceOnReferenceAreaBoundary(boolean value)Controls whether to enable a feature that breaks indent inheritance when crossing reference area boundaries.voidsetFontBaseURL(java.lang.String fontBase)Deprecated.use getFontManager().setFontBaseURL(fontBase) insteadvoidsetHyphenationTreeResolver(org.apache.fop.hyphenation.HyphenationTreeResolver hyphResolver)Sets the HyphenationTreeResolver to be used for resolving user-supplied hyphenation files.voidsetHyphenBaseURL(java.lang.String hyphenBase)Sets the hyphen base URL.voidsetLayoutManagerMakerOverride(org.apache.fop.layoutmgr.LayoutManagerMaker lmMaker)Sets an explicit LayoutManagerMaker instance which overrides the one defined by the AreaTreeHandler.voidsetPageHeight(java.lang.String pageHeight)Sets the page-height to use as fallback, in case page-height="auto"voidsetPageWidth(java.lang.String pageWidth)Sets the page-width to use as fallback, in case page-width="auto"voidsetSourceResolution(float dpi)Sets the source resolution in dpi.voidsetSourceResolution(int dpi)Sets the source resolution in dpi.voidsetStrictUserConfigValidation(boolean strictUserConfigValidation)Is the user configuration to be validated?voidsetStrictValidation(boolean validateStrictly)Activates strict XSL content model validation for FOP Default is false (FOP will continue processing where it can)voidsetTargetResolution(float dpi)Sets the source resolution in dpi.voidsetURIResolver(javax.xml.transform.URIResolver uriResolver)Sets the URI Resolver.voidsetUseCache(boolean useCache)Deprecated.use getFontManager().setUseCache(boolean) insteadvoidsetUserConfig(java.io.File userConfigFile)Set the user configuration.voidsetUserConfig(java.lang.String uri)Set the user configuration from an URI.voidsetUserConfig(org.apache.avalon.framework.configuration.Configuration userConfig)Set the user configuration.booleanuseCache()Deprecated.use getFontManager().useCache() insteadbooleanvalidateStrictly()Returns whether FOP is strictly validating input XSLbooleanvalidateUserConfigStrictly()Is the user configuration to be validated?
-
-
-
Method Detail
-
newInstance
public static FopFactory newInstance()
Returns a new FopFactory instance.- Returns:
- the requested FopFactory instance.
-
newFOUserAgent
public FOUserAgent newFOUserAgent()
Returns a new FOUserAgent instance. Use the FOUserAgent to configure special values that are particular to a rendering run. Don't reuse instances over multiple rendering runs but instead create a new one each time and reuse the FopFactory.- Returns:
- the newly created FOUserAgent instance initialized with default values
- Throws:
FOPException
-
newFop
public Fop newFop(java.lang.String outputFormat) throws FOPException
Returns a newFopinstance. FOP will be configured with a default user agent instance.MIME types are used to select the output format (ex. "application/pdf" for PDF). You can use the constants defined in
MimeConstants.- Parameters:
outputFormat- the MIME type of the output format to use (ex. "application/pdf").- Returns:
- the new Fop instance
- Throws:
FOPException- when the constructor fails
-
newFop
public Fop newFop(java.lang.String outputFormat, FOUserAgent userAgent) throws FOPException
Returns a newFopinstance. Use this factory method if you want to configure this very rendering run, i.e. if you want to set some metadata like the title and author of the document you want to render. In that case, create a newFOUserAgentinstance usingnewFOUserAgent().MIME types are used to select the output format (ex. "application/pdf" for PDF). You can use the constants defined in
MimeConstants.- Parameters:
outputFormat- the MIME type of the output format to use (ex. "application/pdf").userAgent- the user agent that will be used to control the rendering run- Returns:
- the new Fop instance
- Throws:
FOPException- when the constructor fails
-
newFop
public Fop newFop(java.lang.String outputFormat, java.io.OutputStream stream) throws FOPException
Returns a newFopinstance. FOP will be configured with a default user agent instance. Use this factory method if your output type requires an output stream.MIME types are used to select the output format (ex. "application/pdf" for PDF). You can use the constants defined in
MimeConstants.- Parameters:
outputFormat- the MIME type of the output format to use (ex. "application/pdf").stream- the output stream- Returns:
- the new Fop instance
- Throws:
FOPException- when the constructor fails
-
newFop
public Fop newFop(java.lang.String outputFormat, FOUserAgent userAgent, java.io.OutputStream stream) throws FOPException
Returns a newFopinstance. Use this factory method if your output type requires an output stream and you want to configure this very rendering run, i.e. if you want to set some metadata like the title and author of the document you want to render. In that case, create a newFOUserAgentinstance usingnewFOUserAgent().MIME types are used to select the output format (ex. "application/pdf" for PDF). You can use the constants defined in
MimeConstants.- Parameters:
outputFormat- the MIME type of the output format to use (ex. "application/pdf").userAgent- the user agent that will be used to control the rendering runstream- the output stream- Returns:
- the new Fop instance
- Throws:
FOPException- when the constructor fails
-
newFop
public Fop newFop(FOUserAgent userAgent) throws FOPException
Returns a newFopinstance. Use this factory method if you want to supply your ownRendererorFOEventHandlerinstance instead of the default ones created internally by FOP.- Parameters:
userAgent- the user agent that will be used to control the rendering run- Returns:
- the new Fop instance
- Throws:
FOPException- when the constructor fails
-
getRendererFactory
public org.apache.fop.render.RendererFactory getRendererFactory()
- Returns:
- the RendererFactory
-
getXMLHandlerRegistry
public org.apache.fop.render.XMLHandlerRegistry getXMLHandlerRegistry()
- Returns:
- the XML handler registry
-
getImageHandlerRegistry
public org.apache.fop.render.ImageHandlerRegistry getImageHandlerRegistry()
- Returns:
- the image handler registry
-
getElementMappingRegistry
public org.apache.fop.fo.ElementMappingRegistry getElementMappingRegistry()
- Returns:
- the element mapping registry
-
getContentHandlerFactoryRegistry
public org.apache.fop.util.ContentHandlerFactoryRegistry getContentHandlerFactoryRegistry()
- Returns:
- the content handler factory registry
-
getImageManager
public org.apache.xmlgraphics.image.loader.ImageManager getImageManager()
Returns the image manager.- Returns:
- the image manager
-
addElementMapping
public void addElementMapping(org.apache.fop.fo.ElementMapping elementMapping)
Add the element mapping with the given class name.- Parameters:
elementMapping- the class name representing the element mapping.
-
setLayoutManagerMakerOverride
public void setLayoutManagerMakerOverride(org.apache.fop.layoutmgr.LayoutManagerMaker lmMaker)
Sets an explicit LayoutManagerMaker instance which overrides the one defined by the AreaTreeHandler.- Parameters:
lmMaker- the LayoutManagerMaker instance
-
getLayoutManagerMakerOverride
public org.apache.fop.layoutmgr.LayoutManagerMaker getLayoutManagerMakerOverride()
Returns the overriding LayoutManagerMaker instance, if any.- Returns:
- the overriding LayoutManagerMaker or null
-
setBaseURL
public void setBaseURL(java.lang.String base) throws java.net.MalformedURLExceptionSets the base URL.- Parameters:
base- the base URL- Throws:
java.net.MalformedURLException- if there's a problem with a file URL
-
getBaseURL
public java.lang.String getBaseURL()
Returns the base URL.- Returns:
- the base URL
-
setFontBaseURL
public void setFontBaseURL(java.lang.String fontBase) throws java.net.MalformedURLExceptionDeprecated.use getFontManager().setFontBaseURL(fontBase) insteadSets the font base URL.- Parameters:
fontBase- font base URL- Throws:
java.net.MalformedURLException- if there's a problem with a file URL
-
getFontBaseURL
public java.lang.String getFontBaseURL()
Deprecated.use getFontManager().setFontBaseURL(fontBase) instead- Returns:
- the font base URL
-
getHyphenBaseURL
public java.lang.String getHyphenBaseURL()
- Returns:
- the hyphen base URL
-
setHyphenBaseURL
public void setHyphenBaseURL(java.lang.String hyphenBase) throws java.net.MalformedURLExceptionSets the hyphen base URL.- Parameters:
hyphenBase- hythen base URL- Throws:
java.net.MalformedURLException- if there's a problem with a file URL
-
setURIResolver
public void setURIResolver(javax.xml.transform.URIResolver uriResolver)
Sets the URI Resolver. It is used for resolving factory-level URIs like hyphenation patterns and as backup for URI resolution performed during a rendering run.- Parameters:
uriResolver- the new URI resolver
-
getURIResolver
public javax.xml.transform.URIResolver getURIResolver()
Returns the URI Resolver.- Returns:
- the URI Resolver
-
getFOURIResolver
public FOURIResolver getFOURIResolver()
Returns the FO URI Resolver.- Returns:
- the FO URI Resolver
-
getHyphenationTreeResolver
public org.apache.fop.hyphenation.HyphenationTreeResolver getHyphenationTreeResolver()
- Returns:
- the HyphenationTreeResolver for resolving user-supplied hyphenation patterns.
-
setHyphenationTreeResolver
public void setHyphenationTreeResolver(org.apache.fop.hyphenation.HyphenationTreeResolver hyphResolver)
Sets the HyphenationTreeResolver to be used for resolving user-supplied hyphenation files.- Parameters:
hyphResolver- the HyphenationTreeResolver instance
-
setStrictValidation
public void setStrictValidation(boolean validateStrictly)
Activates strict XSL content model validation for FOP Default is false (FOP will continue processing where it can)- Parameters:
validateStrictly- true to turn on strict validation
-
validateStrictly
public boolean validateStrictly()
Returns whether FOP is strictly validating input XSL- Returns:
- true of strict validation turned on, false otherwise
-
isBreakIndentInheritanceOnReferenceAreaBoundary
public boolean isBreakIndentInheritanceOnReferenceAreaBoundary()
- Returns:
- true if the indent inheritance should be broken when crossing reference area boundaries (for more info, see the javadoc for the relative member variable)
-
setBreakIndentInheritanceOnReferenceAreaBoundary
public void setBreakIndentInheritanceOnReferenceAreaBoundary(boolean value)
Controls whether to enable a feature that breaks indent inheritance when crossing reference area boundaries.This flag controls whether FOP will enable special code that breaks property inheritance for start-indent and end-indent when the evaluation of the inherited value would cross a reference area. This is described under http://wiki.apache.org/xmlgraphics-fop/IndentInheritance as is intended to improve interoperability with commercial FO implementations and to produce results that are more in line with the expectation of unexperienced FO users. Note: Enabling this features violates the XSL specification!
- Parameters:
value- true to enable the feature
-
isBase14KerningEnabled
public boolean isBase14KerningEnabled()
Deprecated.use getFontManager().isBase14KerningEnabled() instead- Returns:
- true if kerning on base 14 fonts is enabled
-
setBase14KerningEnabled
public void setBase14KerningEnabled(boolean value)
Deprecated.use getFontManager().setBase14KerningEnabled(boolean) insteadControls whether kerning is activated on base 14 fonts.- Parameters:
value- true if kerning should be activated
-
getSourceResolution
public float getSourceResolution()
- Specified by:
getSourceResolutionin interfaceorg.apache.xmlgraphics.image.loader.ImageContext- Returns:
- the resolution for resolution-dependant input
-
getSourcePixelUnitToMillimeter
public float getSourcePixelUnitToMillimeter()
Returns the conversion factor from pixel units to millimeters. This depends on the desired source resolution.- Returns:
- float conversion factor
- See Also:
getSourceResolution()
-
setSourceResolution
public void setSourceResolution(float dpi)
Sets the source resolution in dpi. This value is used to interpret the pixel size of source documents like SVG images and bitmap images without resolution information.- Parameters:
dpi- resolution in dpi
-
getTargetResolution
public float getTargetResolution()
- Returns:
- the resolution for resolution-dependant output
-
getTargetPixelUnitToMillimeter
public float getTargetPixelUnitToMillimeter()
Returns the conversion factor from pixel units to millimeters. This depends on the desired target resolution.- Returns:
- float conversion factor
- See Also:
getTargetResolution()
-
setTargetResolution
public void setTargetResolution(float dpi)
Sets the source resolution in dpi. This value is used to interpret the pixel size of source documents like SVG images and bitmap images without resolution information.- Parameters:
dpi- resolution in dpi
-
setSourceResolution
public void setSourceResolution(int dpi)
Sets the source resolution in dpi. This value is used to interpret the pixel size of source documents like SVG images and bitmap images without resolution information.- Parameters:
dpi- resolution in dpi
-
getPageHeight
public java.lang.String getPageHeight()
Gets the default page-height to use as fallback, in case page-height="auto"- Returns:
- the page-height, as a String
-
setPageHeight
public void setPageHeight(java.lang.String pageHeight)
Sets the page-height to use as fallback, in case page-height="auto"- Parameters:
pageHeight- page-height as a String
-
getPageWidth
public java.lang.String getPageWidth()
Gets the default page-width to use as fallback, in case page-width="auto"- Returns:
- the page-width, as a String
-
setPageWidth
public void setPageWidth(java.lang.String pageWidth)
Sets the page-width to use as fallback, in case page-width="auto"- Parameters:
pageWidth- page-width as a String
-
ignoreNamespace
public void ignoreNamespace(java.lang.String namespaceURI)
Adds a namespace to the set of ignored namespaces. If FOP encounters a namespace which it cannot handle, it issues a warning except if this namespace is in the ignored set.- Parameters:
namespaceURI- the namespace URI
-
ignoreNamespaces
public void ignoreNamespaces(java.util.Collection namespaceURIs)
Adds a collection of namespaces to the set of ignored namespaces. If FOP encounters a namespace which it cannot handle, it issues a warning except if this namespace is in the ignored set.- Parameters:
namespaceURIs- the namespace URIs
-
isNamespaceIgnored
public boolean isNamespaceIgnored(java.lang.String namespaceURI)
Indicates whether a namespace URI is on the ignored list.- Parameters:
namespaceURI- the namespace URI- Returns:
- true if the namespace is ignored by FOP
-
getIgnoredNamespace
public java.util.Set getIgnoredNamespace()
- Returns:
- the set of namespaces that are ignored by FOP
-
setUserConfig
public void setUserConfig(java.io.File userConfigFile) throws org.xml.sax.SAXException, java.io.IOExceptionSet the user configuration.- Parameters:
userConfigFile- the configuration file- Throws:
java.io.IOException- if an I/O error occursorg.xml.sax.SAXException- if a parsing error occurs
-
setUserConfig
public void setUserConfig(java.lang.String uri) throws org.xml.sax.SAXException, java.io.IOExceptionSet the user configuration from an URI.- Parameters:
uri- the URI to the configuration file- Throws:
java.io.IOException- if an I/O error occursorg.xml.sax.SAXException- if a parsing error occurs
-
setUserConfig
public void setUserConfig(org.apache.avalon.framework.configuration.Configuration userConfig) throws FOPExceptionSet the user configuration.- Parameters:
userConfig- configuration- Throws:
FOPException- if a configuration problem occurs
-
getUserConfig
public org.apache.avalon.framework.configuration.Configuration getUserConfig()
Get the user configuration.- Returns:
- the user configuration
-
setStrictUserConfigValidation
public void setStrictUserConfigValidation(boolean strictUserConfigValidation)
Is the user configuration to be validated?- Parameters:
strictUserConfigValidation- strict user config validation
-
validateUserConfigStrictly
public boolean validateUserConfigStrictly()
Is the user configuration to be validated?- Returns:
- if the user configuration should be validated
-
setUseCache
public void setUseCache(boolean useCache)
Deprecated.use getFontManager().setUseCache(boolean) insteadWhether or not to cache results of font triplet detection/auto-config- Parameters:
useCache- use cache or not
-
useCache
public boolean useCache()
Deprecated.use getFontManager().useCache() insteadCache results of font triplet detection/auto-config?- Returns:
- whether this factory is uses the cache
-
getFontCache
public org.apache.fop.fonts.FontCache getFontCache()
Deprecated.use getFontManager().getFontCache() insteadReturns the font cache instance used by this factory.- Returns:
- the font cache
-
getFontManager
public org.apache.fop.fonts.FontManager getFontManager()
Returns the font manager.- Returns:
- the font manager
-
resolveURI
public javax.xml.transform.Source resolveURI(java.lang.String href, java.lang.String baseUri)Attempts to resolve the given URI. Will use the configured resolver and if not successful fall back to the default resolver.- Parameters:
href- URI to accessbaseUri- the base URI to resolve against- Returns:
- A
Sourceobject, or null if the URI cannot be resolved. - See Also:
FOURIResolver
-
getColorSpace
public java.awt.color.ColorSpace getColorSpace(java.lang.String baseUri, java.lang.String iccProfileSrc)Create (if needed) and return an ICC ColorSpace instance. The ICC profile source is taken from the src attribute of the color-profile FO element. If the ICC ColorSpace is not yet in the cache a new one is created and stored in the cache. The FOP URI resolver is used to try and locate the ICC file. If that fails null is returned.- Parameters:
baseUri- a base URI to resolve relative URIsiccProfileSrc- ICC Profile source to return a ColorSpace for- Returns:
- ICC ColorSpace object or null if ColorSpace could not be created
-
-