public class PDFFilter extends Object implements Filter, ErrorHandler
PDFFilter class is an implementation of the Servlet 2.3 Filter
interface, which automatically converts an XML report into a PDF which is
returned to the client. For those still using the Servlet 2.2 architecture,
PDFProxyServlet does a similar job.
More information on installing filters is available in the Servlet Specification
and has probably been supplied with your Servlet engine. For the impatient,
here's an example setup which would cause all requests to anything in the
/pdf/ path of your website to be converted to a PDF. Add the following
lines to your
<filter> <filter-name>bforeport</filter-name> <filter-class>org.faceless.report.PDFFilter</filter-class> </filter> <filter-mapping> <filter-name>bforeport</filter-name> <url-pattern>/pdf/*</url-pattern> </filter-mapping>
Meta tags that aren't already known to the Report Generator and that
begin with "
HTTP-" are added to the response header (minus the
"HTTP-" prefix). An example would be to place
<meta name="HTTP-Expires" value="Mon, 01 Jan 1999 12:00:00 GMT">
in the head of the XML, which would set the "Expires" header in the HTTP
The following custom Meta-Tags may also be used to control the behaviour of the servlet.
Servlet-Filename- ask the client browser to save the file as the specified filename instead of displaying it inline. This uses the
Content-Dispositionheader, which in theory is accepted by NS4+ and IE5+, although this known bug in IE5.5 may prevent the document from being viewed at all. Use with caution unless you know your audiences browsers.
web.xmlfile to further control various internal aspects of the servlet:
org.xml.sax.driver- may be set to the base class of your SAX parsers
XMLReaderimplementation, if the generator is unable to locate it.
org.faceless.report.flag.WarningUnknownTag- may be set to
falseto generate warnings about unknown tags. Default is "true"
org.faceless.report.flag.WarningUnknownAttribute- may be set to
falseto generate warnings about unknown attributes. Default is "true"
org.faceless.report.flag.WarningMisplacedText- may be set to
falseto generate warnings about misplaced text. Default is "true"
cache-prefix- can be set to cache parts of the created document to disk.
These last two parameters were added in version 1.1.19 to cause parts of the document
to be cached to disk. This can reduce memory footprint slightly, although it may slow
things down a little so you must decide whether it's appropriate or not. The
cache-minsize parameters are passed into the
DiskCache constructor - essentially the
be a temporary directory, optionally with the first half of a filename. The
parameter sets the minimum size a stream may be before it's considered to be worth caching to disk.
For example, to store streams greater than 8k in the "/tmp/cache" directory and call them
"bfo.1", "bfo.2" and so on, you could do something like this:
<filter> <filter-name>bforeport</filter-name> <filter-class>org.faceless.report.PDFFilter</filter-class> <init-param> <param-name>cache-minsize</param-name> <param-value>8192</param-value> </init-param> <init-param> <param-name>cache-prefix</param-name> <param-value>/tmp/cache/bfo.</param-value> </init-param> </filter>
This class also implements
org.xml.sax.ErrorHandler, to deal with
any errors found during the XML parsing process. Currently all warnings and
errors are fatal, and logged to
System.err. To change this behaviour,
subclass this class and override the
|Constructor and Description|
|Modifier and Type||Method and Description|
Return the Filter Config.
Handle any meta tags that aren't recognised by the core Report Generator.
Set the Filter Config.
public void init(FilterConfig config) throws ServletException
public FilterConfig getFilterConfig()
public void setFilterConfig(FilterConfig conf)
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException
public void metaTag(HttpServletRequest reader, HttpServletResponse writer, String name, String value) throws ServletException, IOException
HTTP-, as well as
public void warning(SAXParseException exception) throws SAXException
public void error(SAXParseException exception) throws SAXException
Copyright © 2001-2017 Big Faceless Organization