File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Servlets and the fly likes PDF generation from a servlet Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Servlets
Reply locked New topic

PDF generation from a servlet

Radha MahaLakshmi
Ranch Hand

Joined: Mar 28, 2003
Posts: 45
I am trying to generate PDF from servelet.I tried with JSP but could not able to succedd.Now i am trying with servlet its not giving any exceptions but pdf report is not getting disdplayed and my browser window is getting hanged.
Can some body help me pleae..
Here is my code
import java.util.Date;
import javax.servlet.http.*;
import javax.servlet.*;
import com.lowagie.text.*;
import com.lowagie.text.pdf.PdfWriter;
import com.lowagie.text.html.HtmlWriter;
public class Chap0105 extends HttpServlet {
public void doGet (HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
// we retrieve the presentationtype
String presentationtype = "pdf";
// step 1
System.out.println("---inside servelit----");
Document document = new Document(PageSize.A4.rotate(), 10, 10, 10, 10);
try {
// step 2: we set the ContentType and create an instance of the corresponding Writer
if ("pdf".equals(presentationtype)) {
PdfWriter.getInstance(document, response.getOutputStream());
else if ("html".equals(presentationtype)) {
HtmlWriter.getInstance(document, response.getOutputStream());
else {
// step 3;
// step 4
document.add(new Paragraph(new Date().toString()));
catch(DocumentException de) {
System.err.println("document: " + de.getMessage());
// step 5: we close the document (the outputstream is also closed internally)
William Brogden
Author and all-around good cowpoke

Joined: Mar 22, 2000
Posts: 13036
It is my understanding that some viewers only work right if you can set the content length. To do this you have to write the PDF to an internal ByteArrayOutputStream first to get the total length, set the content length and then write the resulting byte[] to the output stream.
David O'Meara

Joined: Mar 06, 2001
Posts: 13459

I noticed you have asked the same question in the JSP forum. Anyone who wants to help should go to this thread.
Please don't post the same question in multiple forums. It creates duplicate conversations and wastes the time of the people who are trying to help you.
I agree. Here's the link:
subject: PDF generation from a servlet
It's not a secret anymore!