Example usage for com.lowagie.text.pdf PdfWriter close

List of usage examples for com.lowagie.text.pdf PdfWriter close

Introduction

In this page you can find the example usage for com.lowagie.text.pdf PdfWriter close.

Prototype

public void close() 

Source Link

Document

Signals that the Document was closed and that no other Elements will be added.

Usage

From source file:se.kth.ict.iv1201.recsys.controller.PdfServlet.java

/**
 * Servlet GET, returns a PDF with inforation specified as 
 * parameters if the user is logged in and of right user role
 * //from  ww w. ja  v  a  2s. c  o  m
 * @param request
 * @param response
 * @throws ServletException
 * @throws IOException 
 */
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    try {

        Principal user = request.getUserPrincipal();
        if (user == null || !request.isUserInRole("recruiter"))
            throw new ServletException("Not logged in");

        String name = request.getParameter("name");
        String surname = request.getParameter("surname");
        String submitDate = request.getParameter("submitdate");
        String[] competences = request.getParameter("comp").split("_");
        String[] availabilities = request.getParameter("avail").split("_");

        Font titleFont = FontFactory.getFont("Times-Roman", 18, Font.BOLD);

        response.setContentType("application/pdf");
        response.setHeader("Content-disposition",
                "attachment; filename=" + name + surname + "-application.pdf");
        response.setHeader("Cache-Control", "private, no-store, no-cache, must-revalidate");

        Document doc = new Document();
        ByteArrayOutputStream baosPDF = new ByteArrayOutputStream();
        PdfWriter docWriter = PdfWriter.getInstance(doc, baosPDF);

        doc.open();

        doc.add(new Paragraph("Application", titleFont));
        doc.add(new Paragraph(
                "Name: " + name + "\nSurname: " + surname + "\nApplication submit date: " + submitDate));

        doc.add(new Paragraph("Competences", titleFont));
        StringBuilder sb = new StringBuilder();
        for (String comp : competences) {
            sb.append(comp + "\n");
        }
        doc.add(new Paragraph(sb.toString()));

        doc.add(new Paragraph("Availabilities", titleFont));
        sb = new StringBuilder();
        for (String avail : availabilities) {
            sb.append(avail + "\n");
        }
        doc.add(new Paragraph(sb.toString()));

        doc.close();
        docWriter.close();

        response.setContentLength(baosPDF.size());

        ServletOutputStream sos = response.getOutputStream();
        baosPDF.writeTo(sos);
        sos.flush();
    } catch (DocumentException ex) {
        Logger.getLogger(PdfServlet.class.getName()).log(Level.SEVERE, null, ex);
    }
}