You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-users@xmlgraphics.apache.org by da...@tiscali.es on 2003/04/14 18:00:44 UTC
FopServlet, passing parameters as URL
I "mix" FopServlet.java and ExampleXML2PDF.java to develop a servlet that
uses xml and xml parameters as url.
This is the code:
/*
XURLPDF.java, v 1.0 2003/03/14 17:30:00 david
Abstract :Mixing code from FopServlet.java and ExampleXML2PDF.java,
this servlet obtains a pdf, passing xml and xsl parameters as url.
Author: David Bermudez Garcia
*/
import java.io.*;
//SERVLET
import javax.servlet.*;
import javax.servlet.http.*;
//SAX
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerException;
import javax.xml.transform.Source;
import javax.xml.transform.Result;
import javax.xml.transform.stream.*;
import javax.xml.transform.sax.SAXResult;
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
//FOP
import org.apache.fop.apps.Driver;
import org.apache.fop.apps.FOPException;
import org.apache.fop.messaging.MessageHandler;
//AVALON
import org.apache.avalon.framework.logger.ConsoleLogger;
import org.apache.avalon.framework.logger.Logger;
public class XURLPDF extends HttpServlet {
public static final String XML_REQUEST_PARAM = "xml";
public static final String XSL_REQUEST_PARAM = "xsl";
Logger log = null;
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException
{
if(log == null) {
log = new ConsoleLogger(ConsoleLogger.LEVEL_WARN);
MessageHandler.setScreenLogger(log);
}
try {
String xmlParam = request.getParameter(XML_REQUEST_PARAM);
String xslParam = request.getParameter(XSL_REQUEST_PARAM);
if((xmlParam != null) && (xslParam != null)) {
response.setContentType("application/pdf");
Driver driver = new Driver();
Logger logger = new ConsoleLogger(ConsoleLogger.LEVEL_INFO);
driver.setLogger(logger);
MessageHandler.setScreenLogger(logger);
driver.setRenderer(Driver.RENDER_PDF);
driver.setOutputStream(response.getOutputStream());
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(new StreamSource(xslParam));
Source src=new StreamSource(xmlParam);
Result res = new SAXResult(driver.getContentHandler());
transformer.transform(src, res);
} else {
PrintWriter out = response.getWriter();
out.println("<html><head><title>Error</title></head><body><h1>FopServlet
Error</h1><h3>request param not given.</body></html>");
}
} catch (Exception ex) {
throw new ServletException(ex);
}
}
}
-------------------------------------------------
Nueva Tiscali ADSL libre www.tiscali.es/libre
¡¡¡ POR SÓLO 16,95 euros al mes !!!
+ tiempo de conexión (0,024 ./min.)
Y cuota máxima garantizada de 39,95 ./mes
AHORA ALTA GRATIS
¡¡¡ Por fin pagas por lo que consumes !!!
-------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-user-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-user-help@xml.apache.org
Re: FopServlet, passing parameters as URL
Posted by "J.Pietschmann" <j3...@yahoo.de>.
Steve Guo wrote:
> When I ran the attached code below, I got blank screen instead of the pdf
> file. Where is the pdf file?
Eaten by IEx, I guess:
> driver.setOutputStream(response.getOutputStream());
^^^^^^^^^^^^^^^^^^^^^^^^^^
IEx has difficulties if the content length of the response
is not set. Get the relevant code from FOPServlet.java
from the FOP source distribution.
J.Pietschmann
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-user-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-user-help@xml.apache.org
RE: FopServlet, passing parameters as URL
Posted by Steve Guo <co...@yahoo.com>.
When I ran the attached code below, I got blank screen instead of the pdf file. Where is the pdf file? ThanksSteve
Adam Shelley <as...@inlandkwbc.com> wrote:Thank you david for the code post. This is the exact code I was looking for
in a thread i started back a couple weeks ago. Very much appreciated.
-Adam
-----Original Message-----
From: david.bg@tiscali.es [mailto:david.bg@tiscali.es]
Sent: April 14, 2003 9:01 AM
To: fop-user@xml.apache.org
Subject: FopServlet, passing parameters as URL
I "mix" FopServlet.java and ExampleXML2PDF.java to develop a servlet that
uses xml and xml parameters as url.
This is the code:
/*
XURLPDF.java, v 1.0 2003/03/14 17:30:00 david
Abstract :Mixing code from FopServlet.java and ExampleXML2PDF.java,
this servlet obtains a pdf, passing xml and xsl parameters as url.
Author: David Bermudez Garcia
*/
import java.io.*;
//SERVLET
import javax.servlet.*;
import javax.servlet.http.*;
//SAX
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerException;
import javax.xml.transform.Source;
import javax.xml.transform.Result;
import javax.xml.transform.stream.*;
import javax.xml.transform.sax.SAXResult;
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
//FOP
import org.apache.fop.apps.Driver;
import org.apache.fop.apps.FOPException;
import org.apache.fop.messaging.MessageHandler;
//AVALON
import org.apache.avalon.framework.logger.ConsoleLogger;
import org.apache.avalon.framework.logger.Logger;
public class XURLPDF extends HttpServlet {
public static final String XML_REQUEST_PARAM = "xml";
public static final String XSL_REQUEST_PARAM = "xsl";
Logger log = null;
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException
{
if(log == null) {
log = new ConsoleLogger(ConsoleLogger.LEVEL_WARN);
MessageHandler.setScreenLogger(log);
}
try {
String xmlParam = request.getParameter(XML_REQUEST_PARAM);
String xslParam = request.getParameter(XSL_REQUEST_PARAM);
if((xmlParam != null) && (xslParam != null)) {
response.setContentType("application/pdf");
Driver driver = new Driver();
Logger logger = new ConsoleLogger(ConsoleLogger.LEVEL_INFO);
driver.setLogger(logger);
MessageHandler.setScreenLogger(logger);
driver.setRenderer(Driver.RENDER_PDF);
driver.setOutputStream(response.getOutputStream());
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(new
StreamSource(xslParam));
Source src=new StreamSource(xmlParam);
Result res = new SAXResult(driver.getContentHandler());
transformer.transform(src, res);
} else {
PrintWriter out = response.getWriter();
out.println("FopServlet
Errorrequest param not given.");
}
} catch (Exception ex) {
throw new ServletException(ex);
}
}
}
-------------------------------------------------
Nueva Tiscali ADSL libre www.tiscali.es/libre
#65115;?POR S#31884;O 16,95 euros al mes !!!
+ tiempo de conexi#37870; (0,024 ./min.)
Y cuota m#23262;ima garantizada de 39,95 ./mes
AHORA ALTA GRATIS
#65115;?Por fin pagas por lo que consumes !!!
-------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-user-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-user-help@xml.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-user-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-user-help@xml.apache.org
---------------------------------
Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo.
RE: FopServlet, passing parameters as URL
Posted by Adam Shelley <as...@inlandkwbc.com>.
Thank you david for the code post. This is the exact code I was looking for
in a thread i started back a couple weeks ago. Very much appreciated.
-Adam
-----Original Message-----
From: david.bg@tiscali.es [mailto:david.bg@tiscali.es]
Sent: April 14, 2003 9:01 AM
To: fop-user@xml.apache.org
Subject: FopServlet, passing parameters as URL
I "mix" FopServlet.java and ExampleXML2PDF.java to develop a servlet that
uses xml and xml parameters as url.
This is the code:
/*
XURLPDF.java, v 1.0 2003/03/14 17:30:00 david
Abstract :Mixing code from FopServlet.java and ExampleXML2PDF.java,
this servlet obtains a pdf, passing xml and xsl parameters as url.
Author: David Bermudez Garcia
*/
import java.io.*;
//SERVLET
import javax.servlet.*;
import javax.servlet.http.*;
//SAX
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerException;
import javax.xml.transform.Source;
import javax.xml.transform.Result;
import javax.xml.transform.stream.*;
import javax.xml.transform.sax.SAXResult;
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
//FOP
import org.apache.fop.apps.Driver;
import org.apache.fop.apps.FOPException;
import org.apache.fop.messaging.MessageHandler;
//AVALON
import org.apache.avalon.framework.logger.ConsoleLogger;
import org.apache.avalon.framework.logger.Logger;
public class XURLPDF extends HttpServlet {
public static final String XML_REQUEST_PARAM = "xml";
public static final String XSL_REQUEST_PARAM = "xsl";
Logger log = null;
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException
{
if(log == null) {
log = new ConsoleLogger(ConsoleLogger.LEVEL_WARN);
MessageHandler.setScreenLogger(log);
}
try {
String xmlParam = request.getParameter(XML_REQUEST_PARAM);
String xslParam = request.getParameter(XSL_REQUEST_PARAM);
if((xmlParam != null) && (xslParam != null)) {
response.setContentType("application/pdf");
Driver driver = new Driver();
Logger logger = new ConsoleLogger(ConsoleLogger.LEVEL_INFO);
driver.setLogger(logger);
MessageHandler.setScreenLogger(logger);
driver.setRenderer(Driver.RENDER_PDF);
driver.setOutputStream(response.getOutputStream());
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(new
StreamSource(xslParam));
Source src=new StreamSource(xmlParam);
Result res = new SAXResult(driver.getContentHandler());
transformer.transform(src, res);
} else {
PrintWriter out = response.getWriter();
out.println("<html><head><title>Error</title></head><body><h1>FopServlet
Error</h1><h3>request param not given.</body></html>");
}
} catch (Exception ex) {
throw new ServletException(ex);
}
}
}
-------------------------------------------------
Nueva Tiscali ADSL libre www.tiscali.es/libre
¡¡¡ POR SÓLO 16,95 euros al mes !!!
+ tiempo de conexión (0,024 ./min.)
Y cuota máxima garantizada de 39,95 ./mes
AHORA ALTA GRATIS
¡¡¡ Por fin pagas por lo que consumes !!!
-------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-user-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-user-help@xml.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-user-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-user-help@xml.apache.org