There is a PDF generation demo using a GWT entrypoint on the DynamicJasper
website (a wrapper for Jasper, which I think still uses iText deep inside).

http://dynamicjasper.sourceforge.net/

Anyway you can look at the relevant servlet code there, and the hand-off
from the GWT "run report" button.

On Mon, Apr 6, 2009 at 4:55 PM, [email protected] <[email protected]>wrote:

>
> For itext just do a like to like a jsp page that will run the itext
> gen. Thats how i do it and it works great.
>
> On Apr 6, 11:55 am, Peter Ondruška <[email protected]> wrote:
> > I think you should not use GWT RPC servlet, just use normal servlet.
> >
> > 2009/4/6, Superman859 <[email protected]>:
> >
> >
> >
> > > I want to use iText to generate a PDF file.  Ideally, I can
> > > incorporate a generatePDF() method into my interface and my Servlet
> > > that is involved in GWT-RPC.  When that method is called, I want it to
> > > generate a PDF file and either display it to the user in a new window
> > > or present a save dialog box or anything - something that leaves the
> > > GWT app as it was and allows the user to view / save / print the PDF.
> >
> > > Generating the PDF is not a problem.  I can generate one and write it
> > > to a file on the server without any trouble.  However, I am having
> > > trouble presenting the user with it (I would rather NOT write them to
> > > files on the server, and just let the user save on their own machine
> > > if they wish to do so).
> >
> > > Here is code for a sample "Hello World"
> >
> > > public boolean generatePDF(ReportDO report, int id) {
> > >            System.out.println("hello world to follow");
> > >            // get request
> > >            //HttpServletRequest request = getThreadLocalRequest();
> >
> > >            // get response
> > >            HttpServletResponse response = getThreadLocalResponse();
> >
> > >            Document document = new Document();
> >
> > >            // generate test PDF
> > >            try {
> >
> > >            ByteArrayOutputStream baos = new ByteArrayOutputStream();
> > >            //PdfWriter.getInstance(document, new FileOutputStream
> > > ("HelloWorld.pdf"));
> > >            PdfWriter.getInstance(document, baos);
> > >            document.open();
> > >            document.add(new Paragraph("hello world"));
> > >            document.close();
> >
> > >            // setting some response headers
> > >            response.setHeader("Expires", "0");
> > >            response.setHeader("Cache-Control", "must-revalidate,
> post-check=0,
> > > pre-check=0");
> > >            response.setHeader("Pragma", "public");
> >
> > >            response.setContentType("application/pdf");
> >
> > >            // content length is needed for MSIE
> > >            response.setContentLength(baos.size());
> >
> > >            // write ByteArrayOutputStream to ServletOutputStream
> > >            ServletOutputStream out = response.getOutputStream();
> > >            baos.writeTo(out);
> > >            out.flush();
> > >            }
> > >            catch (Exception e) {
> > >                    System.out.println("generatePDF:Exception " +
> e.getMessage());
> > >            }
> >
> > >            return true;
> > >    }
> >
> > > This code is in my GWT-RPC Servlet, which extends
> > > RemoteServiceServlet.  Note if I use the currently commented line of
> > > FileOutputStream("HelloWorld.pdf") it will generate the file and work
> > > fine.  However, if I try to send it to the browser, nothing appears,
> > > and the AsyncCallback for GWT-RPC calls the onFailure() method.
> >
> > > Does anyone know where the problem might be?  I'm assuming it has to
> > > do with response.  RemoteServiceServlet has a method
> > > getThreadLocalResponse() which returns HttpServletResponse, which is
> > > what the iText examples use.  I know very little about these response
> > > objects.  But it seems that somehow there is some interference between
> > > that and GWT-RPC.  The AsyncCallback is a success when writing to
> > > file.  However, when attempting to send to browser, it fails.
> >
> >
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to