Class FopFactory

  • All Implemented Interfaces:
    org.apache.xmlgraphics.image.loader.ImageContext

    public final class FopFactory
    extends java.lang.Object
    implements org.apache.xmlgraphics.image.loader.ImageContext
    Factory 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 renderingq run can be found and managed in the FOUserAgent.
    • Field Detail

      • log

        private static org.apache.commons.logging.Log log
        logger instance
      • rendererFactory

        private final RendererFactory rendererFactory
        Factory for Renderers and FOEventHandlers
      • elementMappingRegistry

        private final ElementMappingRegistry elementMappingRegistry
        The registry for ElementMapping instances
      • contentHandlerFactoryRegistry

        private final ContentHandlerFactoryRegistry contentHandlerFactoryRegistry
        The registry for ContentHandlerFactory instance
      • rendererConfig

        private final java.util.Map<java.lang.String,​RendererConfig> rendererConfig
      • hyphPatNames

        private java.util.Map<java.lang.String,​java.lang.String> hyphPatNames
        Map of configured names of hyphenation pattern file names: ll_CC => name
    • Method Detail

      • newInstance

        public static FopFactory newInstance​(FopFactoryConfig config)
        FOP has the ability, for some FO's, to continue processing even if the input XSL violates that FO's content model. This is the default behavior for FOP. However, this flag, if set, provides the user the ability for FOP to halt on all content model violations if desired. Returns a new FopFactory instance that is configured using the FopFactoryConfig object.
        Parameters:
        config - the fop configuration
        Returns:
        the requested FopFactory instance.
      • newInstance

        public static FopFactory newInstance​(java.io.File fopConf)
                                      throws org.xml.sax.SAXException,
                                             java.io.IOException
        Returns a new FopFactory instance that is configured using the FopFactoryConfig object that is created when the fopConf is parsed.
        Parameters:
        fopConf - the fop conf configuration file to parse
        Returns:
        the requested FopFactory instance.
        Throws:
        java.io.IOException
        org.xml.sax.SAXException
      • newInstance

        public static FopFactory newInstance​(java.net.URI baseURI)
        Returns a new FopFactory instance that is configured only by the default configuration parameters.
        Parameters:
        baseURI - the base URI to resolve resource URIs against
        Returns:
        the requested FopFactory instance.
      • newInstance

        public static FopFactory newInstance​(java.net.URI baseURI,
                                             java.io.InputStream confStream)
                                      throws org.xml.sax.SAXException,
                                             java.io.IOException
        Returns a new FopFactory instance that is configured using the FopFactoryConfig object that is created when the fopConf is parsed.
        Parameters:
        baseURI - the base URI to resolve resource URIs against
        confStream - the fop conf configuration stream to parse
        Returns:
        the requested FopFactory instance.
        Throws:
        org.xml.sax.SAXException
        java.io.IOException
      • 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
      • isComplexScriptFeaturesEnabled

        boolean isComplexScriptFeaturesEnabled()
      • newFop

        public Fop newFop​(java.lang.String outputFormat)
                   throws FOPException
        Returns a new Fop instance. 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 new Fop instance. 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 new FOUserAgent instance using newFOUserAgent().

        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
      • isTableBorderOverpaint

        boolean isTableBorderOverpaint()
      • isSimpleLineBreaking

        boolean isSimpleLineBreaking()
      • isSkipPagePositionOnlyAllowed

        boolean isSkipPagePositionOnlyAllowed()
      • newFop

        public Fop newFop​(java.lang.String outputFormat,
                          java.io.OutputStream stream)
                   throws FOPException
        Returns a new Fop instance. 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 new Fop instance. 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 new FOUserAgent instance using newFOUserAgent().

        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
        stream - the output stream
        Returns:
        the new Fop instance
        Throws:
        FOPException - when the constructor fails
      • newFop

        public Fop newFop​(FOUserAgent userAgent)
                   throws FOPException
        Returns a new Fop instance. Use this factory method if you want to supply your own Renderer or FOEventHandler instance 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 RendererFactory getRendererFactory()
        Returns:
        the RendererFactory
      • getXMLHandlerRegistry

        public XMLHandlerRegistry getXMLHandlerRegistry()
        Returns:
        the XML handler registry
      • getImageHandlerRegistry

        public ImageHandlerRegistry getImageHandlerRegistry()
        Returns:
        the image handler registry
      • getElementMappingRegistry

        public ElementMappingRegistry getElementMappingRegistry()
        Returns:
        the element mapping registry
      • getContentHandlerFactoryRegistry

        public ContentHandlerFactoryRegistry getContentHandlerFactoryRegistry()
        Returns:
        the content handler factory registry
      • getRendererConfig

        RendererConfig getRendererConfig​(FOUserAgent userAgent,
                                         Configuration cfg,
                                         RendererConfig.RendererConfigParser configCreator)
                                  throws FOPException
        Returns the renderer configuration object for a specific renderer given the parser and configuration to read. The renderer config is cached such that the Configuration is only parsed once per renderer, per FopFactory instance.
        Parameters:
        userAgent - the user agent
        cfg - the configuration to be parsed
        configCreator - the parser that creates the config object
        Returns:
        the config object
        Throws:
        FOPException - when an error occurs while creating the configuration object
      • addElementMapping

        public void addElementMapping​(ElementMapping elementMapping)
        Add the element mapping with the given class name.
        Parameters:
        elementMapping - the class name representing the element mapping.
      • isAccessibilityEnabled

        boolean isAccessibilityEnabled()
        Returns whether accessibility is enabled.
        Returns:
        true if accessibility is enabled
      • isKeepEmptyTags

        boolean isKeepEmptyTags()
      • getSourceResolution

        public float getSourceResolution()
        Specified by:
        getSourceResolution in interface org.apache.xmlgraphics.image.loader.ImageContext
        See Also:
        FopFactoryConfig.getSourceResolution()
      • 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()
      • 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()
      • getUserConfig

        public Configuration getUserConfig()
        Get the user configuration.
        Returns:
        the user configuration
      • getColorSpaceCache

        public ColorSpaceCache getColorSpaceCache()
        Returns the color space cache for this instance.

        Note: this method should not be considered as part of FOP's external API.

        Returns:
        the color space cache