|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.faceless.report.PDFFilter
public class PDFFilter
The 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,
The 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 WEB-INF/web.xml file:
<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
response.
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-Disposition
header, 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.xml file to further
control various internal aspects of the servlet:
org.xml.sax.driver - may be set to the base class of your SAX parsers
XMLReader implementation, if the generator is unable to locate it.org.faceless.report.flag.WarningUnknownTag - may be set to true or false to generate warnings about unknown tags. Default is "true"org.faceless.report.flag.WarningUnknownAttribute - may be set to true or false to generate warnings about unknown attributes. Default is "true"org.faceless.report.flag.WarningMisplacedText - may be set to true or false to generate warnings about misplaced text. Default is "true"cache-minsize and 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-prefix and cache-minsize parameters are passed into the
DiskCache constructor - essentially the prefix should
be a temporary directory, optionally with the first half of a filename. The minsize
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.
| Constructor Summary | |
|---|---|
PDFFilter()
|
|
| Method Summary | |
|---|---|
void |
destroy()
|
void |
doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
|
void |
error(SAXParseException exception)
|
void |
fatalError(SAXParseException exception)
|
FilterConfig |
getFilterConfig()
Return the Filter Config. |
void |
init(FilterConfig config)
|
void |
metaTag(HttpServletRequest reader,
HttpServletResponse writer,
String name,
String value)
Handle any meta tags that aren't recognised by the core Report Generator. |
void |
setFilterConfig(FilterConfig conf)
Set the Filter Config. |
void |
warning(SAXParseException exception)
|
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public PDFFilter()
| Method Detail |
|---|
public void init(FilterConfig config)
throws ServletException
init in interface FilterServletExceptionpublic void destroy()
destroy in interface Filterpublic FilterConfig getFilterConfig()
public void setFilterConfig(FilterConfig conf)
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
throws ServletException,
IOException
doFilter in interface FilterServletException
IOException
public void metaTag(HttpServletRequest reader,
HttpServletResponse writer,
String name,
String value)
throws ServletException,
IOException
HTTP-, as well as
Servlet-FileName.
request - the Servlet requestresponse - the Servlet requestname - the "name" attribute from the meta tagvalue - the "value" attribute from the meta tag
ServletException
IOException
public void warning(SAXParseException exception)
throws SAXException
warning in interface ErrorHandlerSAXException
public void error(SAXParseException exception)
throws SAXException
error in interface ErrorHandlerSAXException
public void fatalError(SAXParseException exception)
throws SAXException
fatalError in interface ErrorHandlerSAXException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||