Anonymous - 2008-09-04

Dear Reader,
I want to convert dynamically web page that user is currently viewing to PDF.
for example if user has performed some function on my application and a random forms appears as result i want to convert that page on server side and then show to client i have written a code but it is not working kindly help me out...

import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfWriter;
import java.io.;
import java.net.
;
import javax.servlet.;
import javax.servlet.http.
;

public class pdfservlet extends HttpServlet {
private InputStream in = null;
private ByteArrayOutputStream boasPDF = null;
private int i = -1;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
response.setHeader("Cache-Control","no-cache");
response.setHeader("Cache-Control","no-store");
response.setHeader("Cache-Control","must-revalidate");
response.setHeader("Cache-Control","max-age=30");
response.setHeader("Pragma","no-cache");
response.setHeader("Expires","0");

        response.setContentType("application/pdf");
        response.setHeader("Content-Disposition","inline;filename=Report.pdf");            
        Document doc = new Document();
        boasPDF = new ByteArrayOutputStream();                        
        in = request.getInputStream();
        while((i = in.read()) != -1){
            boasPDF.write(i);
        }

        doc.open();
        doc.addAuthor("Syed Muhammad Aizaz Haider");
        doc.addTitle("T E S T ^ C A S E ");
        doc.add(new Paragraph("mannual write"));
        PdfWriter.getInstance(doc, boasPDF);            
        response.setContentLength(boasPDF.size());            
        ServletOutputStream sos = response.getOutputStream();            
        boasPDF.write(45455);
        boasPDF.writeTo(sos);            
        sos.flush();
        sos.close();
        doc.close();
        in.close();
        boasPDF.close();
    }
    catch (DocumentException ex) {
        ex.printStackTrace();
    }

}

protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    processRequest(request, response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    processRequest(request, response);
}

}