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