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 -~----------~----~----~----~------~----~------~--~---
