I think you should not use GWT RPC servlet, just use normal servlet.

2009/4/6, Superman859 <russ.d.hollo...@gmail.com>:
>
> 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 Google-Web-Toolkit@googlegroups.com
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to