org.apache.fop.servlet

## Class FopServlet

- java.lang.Object
- - jakarta.servlet.GenericServlet
  - - jakarta.servlet.http.HttpServlet
    - - org.apache.fop.servlet.FopServlet

All Implemented Interfaces:
  jakarta.servlet.Servlet, jakarta.servlet.ServletConfig, Serializable

Direct Known Subclasses:
  FopPrintServlet

    public class FopServlet
    extends jakarta.servlet.http.HttpServlet

Example servlet to generate a PDF from a servlet.
Servlet param is:

- fo: the path to a XSL-FO file to render

or

- xml: the path to an XML file to render
- xslt: the path to an XSLT file that can transform the above XML to XSL-FO

Example URL: http://servername/fop/servlet/FopServlet?fo=readme.fo
Example URL: http://servername/fop/servlet/FopServlet?xml=data.xml
For this to work with Internet Explorer, you might need to append "ext=.pdf" to the URL. (todo) Ev. add caching mechanism for Templates objects

See Also:
  Serialized Form

### Field Summary

Fields
`protected static String` `FO_REQUEST_PARAM` Name of the parameter used for the XSL-FO file
`protected FopFactory` `fopFactory` The FopFactory used to create Fop instances
`protected TransformerFactory` `transFactory` The TransformerFactory used to create Transformer instances
`protected URIResolver` `uriResolver` URIResolver for use by this servlet
`protected static String` `XML_REQUEST_PARAM` Name of the parameter used for the XML file
`protected static String` `XSLT_REQUEST_PARAM` Name of the parameter used for the XSLT file

### Constructor Summary

Constructors
Constructor and Description
`FopServlet()`

### Method Summary

All Methods Instance Methods Concrete Methods
`protected void` `configureFopFactory(FopFactoryBuilder builder)` This method is called right after the FopFactory is instantiated and can be overridden by subclasses to perform additional configuration.
`protected Source` `convertString2Source(String param)` Converts a String parameter to a JAXP Source object.
`void` `doGet(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)`
`protected FOUserAgent` `getFOUserAgent()`
`void` `init()`
`protected void` `render(Source src, Transformer transformer, jakarta.servlet.http.HttpServletResponse response)` Renders an input file (XML or XSL-FO) into a PDF file.
`protected void` `renderFO(String fo, jakarta.servlet.http.HttpServletResponse response)` Renders an XSL-FO file into a PDF file.
`protected void` `renderXML(String xml, String xslt, jakarta.servlet.http.HttpServletResponse response)` Renders an XML file into a PDF file by applying a stylesheet that converts the XML to XSL-FO.

### Methods inherited from class jakarta.servlet.http.HttpServlet

`doDelete, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service, service`

### Methods inherited from class jakarta.servlet.GenericServlet

`destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### FO_REQUEST_PARAM

    protected static final String FO_REQUEST_PARAM

Name of the parameter used for the XSL-FO file

See Also:
  Constant Field Values

#### XML_REQUEST_PARAM

    protected static final String XML_REQUEST_PARAM

Name of the parameter used for the XML file

See Also:
  Constant Field Values

#### XSLT_REQUEST_PARAM

    protected static final String XSLT_REQUEST_PARAM

Name of the parameter used for the XSLT file

See Also:
  Constant Field Values

#### transFactory

    protected TransformerFactory transFactory

The TransformerFactory used to create Transformer instances

#### fopFactory

    protected FopFactory fopFactory

The FopFactory used to create Fop instances

#### uriResolver

    protected transient URIResolver uriResolver

URIResolver for use by this servlet

### Constructor Detail

#### FopServlet

    public FopServlet()

### Method Detail

#### init

    public void init()
              throws jakarta.servlet.ServletException

Overrides:
  `init` in class `jakarta.servlet.GenericServlet`
Throws:
  `jakarta.servlet.ServletException`

#### configureFopFactory

    protected void configureFopFactory(FopFactoryBuilder builder)

This method is called right after the FopFactory is instantiated and can be overridden by subclasses to perform additional configuration.

#### doGet

    public void doGet(jakarta.servlet.http.HttpServletRequest request,
                      jakarta.servlet.http.HttpServletResponse response)
               throws jakarta.servlet.ServletException

Overrides:
  `doGet` in class `jakarta.servlet.http.HttpServlet`
Throws:
  `jakarta.servlet.ServletException`

#### convertString2Source

    protected Source convertString2Source(String param)

Converts a String parameter to a JAXP Source object.

Parameters:
  `param` - a String parameter
Returns:
  Source the generated Source object

#### renderFO

    protected void renderFO(String fo,
                            jakarta.servlet.http.HttpServletResponse response)
                     throws FOPException,
                            TransformerException,
                            IOException

Renders an XSL-FO file into a PDF file. The PDF is written to a byte array that is returned as the method's result.

Parameters:
  `fo` - the XSL-FO file
  `response` - HTTP response object
Throws:
  `FOPException` - If an error occurs during the rendering of the XSL-FO
  `TransformerException` - If an error occurs while parsing the input file
  `IOException` - In case of an I/O problem

#### renderXML

    protected void renderXML(String xml,
                             String xslt,
                             jakarta.servlet.http.HttpServletResponse response)
                      throws FOPException,
                             TransformerException,
                             IOException

Renders an XML file into a PDF file by applying a stylesheet that converts the XML to XSL-FO. The PDF is written to a byte array that is returned as the method's result.

Parameters:
  `xml` - the XML file
  `xslt` - the XSLT file
  `response` - HTTP response object
Throws:
  `FOPException` - If an error occurs during the rendering of the XSL-FO
  `TransformerException` - If an error occurs during XSL transformation
  `IOException` - In case of an I/O problem

#### render

    protected void render(Source src,
                          Transformer transformer,
                          jakarta.servlet.http.HttpServletResponse response)
                   throws FOPException,
                          TransformerException,
                          IOException

Renders an input file (XML or XSL-FO) into a PDF file. It uses the JAXP transformer given to optionally transform the input document to XSL-FO. The transformer may be an identity transformer in which case the input must already be XSL-FO. The PDF is written to a byte array that is returned as the method's result.

Parameters:
  `src` - Input XML or XSL-FO
  `transformer` - Transformer to use for optional transformation
  `response` - HTTP response object
Throws:
  `FOPException` - If an error occurs during the rendering of the XSL-FO
  `TransformerException` - If an error occurs during XSL transformation
  `IOException` - In case of an I/O problem

#### getFOUserAgent

    protected FOUserAgent getFOUserAgent()

Returns:
  a new FOUserAgent for FOP