Example usage for com.itextpdf.text Document close

List of usage examples for com.itextpdf.text Document close

Introduction

In this page you can find the example usage for com.itextpdf.text Document close.

Prototype

boolean close

To view the source code for com.itextpdf.text Document close.

Click Source Link

Document

Has the document already been closed?

Usage

From source file:com.solidmaps.webapp.report.RequerimentAlterLicenseFederalPDF.java

public String generate(LicensePFEntity license, RequerimentFederalEnum type,
        List<ProductOfficialEntity> listProducts) {

    if (listProducts == null || listProducts.isEmpty()) {
        return null;
    }/*from  w  ww  . j  a v  a  2s  . c  om*/

    Document doc = new Document();
    PdfWriter docWriter = null;
    String fileDocPath = "";

    try {

        fileDocPath = this.createDocument(doc, docWriter, license);
        this.createTable(doc, type, license, listProducts);

    } catch (DocumentException dex) {
        dex.printStackTrace();
    } catch (Exception ex) {
        ex.printStackTrace();
    } finally {
        if (doc != null) {
            // close the document
            doc.close();
        }
        if (docWriter != null) {
            // close the writer
            docWriter.close();
        }
    }

    return fileDocPath;
}

From source file:com.sparksoftsolutions.com.pdfcreator.MainActivity.java

private File generatePDFFromImages(ArrayList<ImageItem> images) {
    Document document = new Document();

    File sdcard = Environment.getExternalStorageDirectory();
    File file = new File(sdcard, generateFileName());

    try {/*from  www . j av a 2s  . c o m*/
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(file));
    } catch (Exception ex) {
        return null;
    }

    // document = new PdfDocument();
    Boolean opened = false;
    for (ImageItem img : images) {

        Bitmap bitmap = BitmapFactory.decodeFile(img.path);

        try {

            Image image = Image.getInstance(img.path);
            document.setPageSize(new Rectangle(image.getWidth(), image.getHeight()));

            if (!opened) {
                document.open();
                opened = true;
            } else
                document.newPage();
            document.add(image);

        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    document.close();
    return file;
}

From source file:com.sreekanth.duelist.FirstPdf.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_first_pdf);
    try {//from w w  w  . ja v a 2 s. c  om
        Document document = new Document();
        PdfWriter.getInstance(document, new FileOutputStream(yourFile));
        document.open();
        addMetaData(document);
        addTitlePage(document);
        addContent(document);
        document.close();
        Toast.makeText(FirstPdf.this, "First Pdf File Created in download directory", Toast.LENGTH_LONG).show();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:com.suyati.androidpdf.FirstPDFActivity.java

public void PrintDocument(String dest) throws IOException, java.io.IOException {
    try {//from  w w w  . j a va  2s  .com

        //            Document document = new Document();
        Document document = new Document(PageSize.PENGUIN_SMALL_PAPERBACK, 10f, 10f, 100f, 0f);//PENGUIN_SMALL_PAPERBACK used to set the paper size
        PdfWriter.getInstance(document, new FileOutputStream(dest));
        document.open();
        addMetaData(document);
        addTitlePage(document);
        addContent(document);
        document.close();

        File file = new File(dest);
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(Uri.fromFile(file), "application/pdf");
        intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
        startActivity(intent);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:com.swayam.bhasha.engine.io.writers.impl.PDFGenerator.java

License:Apache License

private void makePDFPage(HTMLDocModel htmlDoc, String fileName) throws DocGenerationException {

    Rectangle pageSize = PageSize.A4;

    if (pageDim.height > pageSize.getHeight()) {
        pageSize = new Rectangle(pageDim.width, pageDim.height);
    }//from w ww .j  av  a 2  s  .  co m

    Document pdfDoc = new Document(pageSize, MARGINS, MARGINS, MARGINS, MARGINS);

    FileOutputStream pdfStream = null;

    try {
        pdfStream = new FileOutputStream(fileName);

        PdfWriter.getInstance(pdfDoc, pdfStream);

        pdfDoc.addAuthor("Bhasha PDF Generator (Powered by IText)");

        pdfDoc.open();

        List<Para> paraList = htmlDoc.getParaList();

        for (Para para : paraList) {
            pdfDoc.add(getParagraph(para));
        }

        pdfDoc.close();

    } catch (Exception e) {
        throw new DocGenerationException(e);
    } finally {

        if (pdfStream != null) {
            try {
                pdfStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }

}

From source file:com.swayam.bhasha.engine.io.writers.impl.PDFImageGenerator.java

License:Apache License

private void makePDFPage(HTMLDocModel htmlDoc, String fileName) throws DocGenerationException, IOException {

    BufferedImage image = getImage(pageDim, htmlDoc);

    /*//from   www.  j av a 2 s  .c om
     * ByteArrayOutputStream bos = new ByteArrayOutputStream();
     * 
     * ImageIO.write(image, "JPG", bos);
     * 
     * byte[] imageData = bos.toByteArray();
     * 
     * System.out.println("PDFImageGenerator.makePDFPage() " +
     * imageData.length);
     */

    Rectangle pageSize = PageSize.A4;

    if (image.getHeight() > pageSize.getHeight()) {
        pageSize = new Rectangle(image.getWidth(), image.getHeight());
    }

    Document pdfDoc = new Document(pageSize, MARGINS, MARGINS, MARGINS, MARGINS);

    FileOutputStream pdfStream = null;

    try {
        pdfStream = new FileOutputStream(fileName);

        PdfWriter pdfWriter = PdfWriter.getInstance(pdfDoc, pdfStream);

        pdfDoc.addAuthor("Bhasha PDF Generator (Powered by IText)");

        pdfDoc.open();

        PdfContentByte contentByte = pdfWriter.getDirectContent();

        Image pdfImage = Image.getInstance(image, null);

        pdfImage.setAbsolutePosition(0, 0);
        contentByte.addImage(pdfImage);

    } catch (Exception e) {
        throw new DocGenerationException(e);
    } finally {

        pdfDoc.close();

        if (pdfStream != null) {
            try {
                pdfStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }
}

From source file:com.systemevent.jsfclass.util.PdfEvento.java

public void imprimirPdf(Evento events) {
    Evento event = events;/*  w w w .j a v  a  2  s .  co m*/

    //buscarPDF(n);
    try {
        //Generamos el archivo PDF
        String directorioArchivos;
        ServletContext ctx = (ServletContext) FacesContext.getCurrentInstance().getExternalContext()
                .getContext();
        directorioArchivos = ctx.getRealPath("\'") + "reports";
        String name = directorioArchivos + "\'document-report.pdf";
        //String name="C:\\Users\\Jose_Gascon\\Documents\\NetBeansProjects\\SystemEvent\\target\\SystemEvent-1.0-SNAPSHOT\\reports\\document-report.pdf";
        Document document = new Document();
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(name));
        FormatoPDF encabezado = new FormatoPDF("");
        Paragraph parrafo, datos, datos1;
        int i;

        // indicamos que objecto manejara los eventos al escribir el Pdf
        writer.setPageEvent(encabezado);

        document.open();
        document.addAuthor("Erick Ramirez");
        document.addTitle("Reporte");

        //Creamos una cantidad significativa de paginas para probar el encabezado

        //for (i = 0; i < 4; i++) {
        parrafo = new Paragraph("Presupuesto de Evento");
        parrafo.setAlignment(Element.ALIGN_CENTER);

        document.add(parrafo);
        //  document.newPage();
        //}

        datos = new Paragraph("Ubicacion: " + event.getUbicacion());
        datos1 = new Paragraph("Pais: " + event.getCodigoPais().getNombre());
        datos.setAlignment(Element.ALIGN_RIGHT);
        datos1.setAlignment(Element.ALIGN_RIGHT);
        document.add(datos1);
        document.add(datos);
        document.add(new Paragraph(""));
        document.add(new Paragraph(""));
        document.add(new Paragraph(""));
        document.add(new Paragraph(""));
        //              PdfPTable table = new PdfPTable(2);
        //              
        //              table.addCell("Cliente: ");
        //              table.addCell(event.getIdCliente().getNombre());
        //              
        //              table.addCell("Descripcion del Evento: ");
        //              table.addCell(event.getDescripcion());
        //              
        //              document.add(table);

        document.add(Tabla_compleja());

        document.close();
        //----------------------------
        //Abrimos el archivo PDF
        FacesContext context = FacesContext.getCurrentInstance();
        HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
        response.setContentType("application/pdf");
        response.setHeader("Content-disposition", "inline=filename=" + name);
        try {
            response.getOutputStream().write(Util.getBytesFromFile(new File(name)));
            response.getOutputStream().flush();
            response.getOutputStream().close();
            context.responseComplete();
        } catch (IOException e) {
            e.printStackTrace();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:com.test.itext.Renderer.java

private byte[] flattenXfa(byte[] sourceXfaBytes) throws RuntimeException {

    // Create an output stream for the flattened doc
    ByteArrayOutputStream flattened = new ByteArrayOutputStream();

    try {//from  w w w  . ja  v a 2s .  co m
        Document document = new Document();
        PdfReader reader = new PdfReader(sourceXfaBytes);
        PdfWriter writer = PdfWriter.getInstance(document, flattened);
        XFAFlattener flattener = new XFAFlattener(document, writer);
        System.out.println("flattener instantiated");
        flattener.flatten(reader);
        document.close();
    } catch (IOException e) {
        String msg = "An IOException was thrown while trying to flatten the XFA form. Msg=" + e.getMessage();
        e.printStackTrace();
        throw new RuntimeException(msg);
    } catch (DocumentException e) {
        String msg = "A DocumentException was thrown while trying to flatten the XFA form. Msg="
                + e.getMessage();
        e.printStackTrace();
        throw new RuntimeException(msg);
    } catch (InterruptedException e) {
        String msg = "An InterruptedException was thrown while trying to flatten the XFA form. Msg="
                + e.getMessage();
        e.printStackTrace();
        throw new RuntimeException(msg);
    } catch (NoClassDefFoundError e) {
        String msg = "A NoClassDefFoundError was thrown while trying to flatten the XFA form. Msg="
                + e.getMessage();
        e.printStackTrace();
        throw new RuntimeException(msg);
    } catch (Exception e) {
        String msg = "A general Exception was thrown while trying to flatten the XFA form. Msg="
                + e.getMessage();
        e.printStackTrace();
        throw new RuntimeException(msg);
    }

    return flattened.toByteArray();
}

From source file:com.thelinh.gui.PreviewExam.java

private void btnPrintActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnPrintActionPerformed
    if (this.txtExamCode.getText().equals("")) {
        JOptionPane.showMessageDialog(this, "Hy nhp m ?");
    } else {/*from w w  w  .  j  ava2 s.  c om*/
        JFileChooser fc = new JFileChooser();
        FileNameExtensionFilter filter = new FileNameExtensionFilter("PDF files (*.pdf)", "pdf");
        fc.setFileFilter(filter);
        int rt = fc.showSaveDialog(this);
        if (rt == JFileChooser.APPROVE_OPTION) {
            String filepath = fc.getSelectedFile().getPath();
            if (filepath.indexOf(".") == -1) {
                filepath = filepath + ".pdf";
            }
            String dafilepath = (new StringBuffer(filepath)).insert(filepath.length() - 4, ".da").toString();
            try {
                Document document = new Document();
                PdfWriter.getInstance(document, new FileOutputStream(filepath));
                document.open();

                // Add title
                Paragraph p = new Paragraph("Tr?ng ?i h?c Bch Khoa H Ni", timesBold_25);
                p.setAlignment(Element.ALIGN_CENTER);
                p.setSpacingAfter(5);
                document.add(p);

                p = new Paragraph("?? thi mn " + this.lbSubject.getText(), timesBold_25);
                p.setAlignment(Element.ALIGN_CENTER);
                p.setSpacingAfter(25);
                document.add(p);

                p = new Paragraph(
                        "Ng?i ra ?: " + Controller.getCurrentAdmin().getAdminName()
                                + ", Ngy ra ?: "
                                + (new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime())),
                        times_15);
                p.setAlignment(Element.ALIGN_LEFT);
                p.setSpacingAfter(5);
                document.add(p);

                p = new Paragraph("M ?: " + this.txtExamCode.getText() + "    Th?i gian lm bi: "
                        + spTime.getValue().toString() + " pht", timesBold_15);
                p.setSpacingAfter(25);
                document.add(p);

                for (int i = 0; i < this.questionList.size(); i++) {
                    Question question = this.questionList.get(i);
                    ArrayList<Answer> answerList = AnswerSql
                            .getAnswersByQuestionId(question.getQuestionId().trim());
                    Phrase questionNumber = new Phrase("Cu " + (i + 1) + ": ", timesBold_15);
                    Phrase questionContent = new Phrase(question.getQuestion(), times_15);

                    Paragraph questionTitle = new Paragraph();
                    questionTitle.add(questionNumber);
                    questionTitle.add(questionContent);

                    document.add(questionTitle);
                    PdfPTable table = new PdfPTable(2);

                    for (int j = 0; j < answerList.size(); j++) {
                        Answer ans = answerList.get(j);
                        Phrase cap = new Phrase(Character.toString((char) (j + 65)) + ". ", timesBold_15);
                        Phrase answerContent = new Phrase(ans.getAnswer(), times_15);
                        Phrase elem = new Phrase();
                        elem.add(cap);
                        elem.add(answerContent);
                        PdfPCell cell = new PdfPCell();

                        cell.setBorder(Rectangle.NO_BORDER);
                        cell.setPhrase(elem);
                        cell.setFixedHeight(25);
                        table.addCell(cell);
                    }
                    document.add(table);
                }
                document.close();
                //                    if (Desktop.isDesktopSupported()) {
                //                        try {
                //                            File myFile = new File(filepath);
                //                            Desktop.getDesktop().open(myFile);
                //                        } catch (IOException ex) {
                //                            // no application registered for PDFs
                //                            System.out.println(ex.toString());
                //                        }
                //                    }

                document = new Document();
                PdfWriter.getInstance(document, new FileOutputStream(dafilepath));
                document.open();

                // Add title
                p = new Paragraph("Tr?ng ?i h?c Bch Khoa H Ni", timesBold_25);
                p.setAlignment(Element.ALIGN_CENTER);
                p.setSpacingAfter(5);
                document.add(p);

                p = new Paragraph("?? thi mn " + this.lbSubject.getText(), timesBold_25);
                p.setAlignment(Element.ALIGN_CENTER);
                p.setSpacingAfter(25);
                document.add(p);

                p = new Paragraph(
                        "Ng?i ra ?: " + Controller.getCurrentAdmin().getAdminName()
                                + ", Ngy ra ?: "
                                + (new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime())),
                        times_15);
                p.setAlignment(Element.ALIGN_LEFT);
                p.setSpacingAfter(5);
                document.add(p);

                p = new Paragraph("M ?: " + this.txtExamCode.getText() + "    Th?i gian lm bi: "
                        + spTime.getValue().toString() + " pht", timesBold_15);
                p.setSpacingAfter(25);
                document.add(p);

                for (int i = 0; i < this.questionList.size(); i++) {
                    Question question = this.questionList.get(i);
                    ArrayList<Answer> answerList = AnswerSql
                            .getAnswersByQuestionId(question.getQuestionId().trim());
                    Phrase questionNumber = new Phrase("Cu " + (i + 1) + ": ", timesBold_15);
                    Phrase questionContent = new Phrase(question.getQuestion(), times_15);

                    Paragraph questionTitle = new Paragraph();
                    questionTitle.add(questionNumber);
                    questionTitle.add(questionContent);

                    document.add(questionTitle);
                    PdfPTable table = new PdfPTable(2);

                    for (int j = 0; j < answerList.size(); j++) {
                        Answer ans = answerList.get(j);
                        Phrase cap = new Phrase(Character.toString((char) (j + 65)) + ". ", timesBold_15);
                        Phrase answerContent = null;
                        if (ans.getYesNo()) {
                            answerContent = new Phrase(ans.getAnswer(), timesBold_15);
                        } else {
                            answerContent = new Phrase(ans.getAnswer(), times_15);
                        }
                        Phrase elem = new Phrase();
                        elem.add(cap);
                        elem.add(answerContent);
                        PdfPCell cell = new PdfPCell();

                        cell.setBorder(Rectangle.NO_BORDER);
                        cell.setPhrase(elem);
                        cell.setFixedHeight(25);
                        table.addCell(cell);
                    }
                    document.add(table);
                }
                document.close();

            } catch (FileNotFoundException | DocumentException ex) {
                Logger.getLogger(PreviewExam.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
}

From source file:com.thelinh.gui.Statistics.java

private void btnExportReportActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExportReportActionPerformed
    Document document = new Document() {
    };//from  www.  j  a v  a 2 s.  c o m
    try {
        JFileChooser jfc = new JFileChooser("Save File");
        if (jfc.showSaveDialog(null) == JFileChooser.APPROVE_OPTION) {
            //  String content = this.txtReport.getText();
            jfc.setDialogTitle("Save File");
            FileOutputStream fos = new FileOutputStream(jfc.getSelectedFile());
            PdfWriter.getInstance(document, fos);
            //                Font rfont = FontFactory.getFont("resources/fonts/vuArial.ttf", IDENTITY_H, true);
            Font rfont = new Font(BaseFont.createFont("resources/fonts/vuTimesBold.ttf", BaseFont.IDENTITY_H,
                    BaseFont.EMBEDDED));
            document.open();
            document.add(new Paragraph(
                    "                                                    TRNG ?I HC B?CH KHOA H NI",
                    rfont));

            if (k == 1) {
                document.add(new Paragraph(
                        "\t\t                                                                   TH?NG K MN HC\n",
                        rfont));
                String sqlSubject1 = "SELECT Count(SubjectId) AS subjectAll FROM Subjects";
                String sqlSubject2 = "SELECT Subjects.SubjectName AS subjectChap, Count(*) AS subjectNumber FROM Chaps,Subjects WHERE Chaps.SubjectId = Subjects.SubjectId GROUP BY Subjects.SubjectName";
                ResultSet rs1 = LoadTable.Display(sqlSubject1);
                ResultSet rs2 = LoadTable.Display(sqlSubject2);
                try {
                    if (rs1.next()) {
                        document.add(new Paragraph(
                                "Tng s mn h?c l " + rs1.getInt("subjectAll") + "\n", rfont));
                    }
                    document.add(new Paragraph("Thng k s chng ca mn h?c: \n\n", rfont));
                    PdfPTable table = new PdfPTable(2);
                    PdfPCell header1 = new PdfPCell(new Paragraph("Mn h?c", rfont));
                    PdfPCell header2 = new PdfPCell(new Paragraph("S chng", rfont));
                    table.addCell(header1);
                    table.addCell(header2);
                    while (rs2.next()) {
                        PdfPCell header3 = new PdfPCell(new Paragraph(rs2.getString("subjectChap"), rfont));
                        table.addCell(header3);
                        PdfPCell header4 = new PdfPCell(new Paragraph("" + rs2.getInt("subjectNumber")));
                        table.addCell(header4);
                    }
                    document.add(table);
                } catch (SQLException ex) {
                    Logger.getLogger(Statistics.class.getName()).log(Level.SEVERE, null, ex);
                }
            } else if (k == 2) {
                try {
                    document.add(new Paragraph(
                            "\t\t                                                                 TH?NG K CU HI\n",
                            rfont));
                    String sqlQuestion1 = "SELECT Count(QuestionId) AS questionAll FROM Questions";
                    String sqlQuestion2 = "SELECT SubjectName AS subjectName, Count(QuestionId) AS questionSubject FROM Questions,Subjects WHERE Subjects.SubjectId = Questions.SubjectId GROUP BY Subjects.SubjectName";
                    ResultSet rs1 = LoadTable.Display(sqlQuestion1);
                    ResultSet rs2 = LoadTable.Display(sqlQuestion2);
                    if (rs1.next()) {
                        document.add(new Paragraph(
                                "Tng s cu h?i l " + rs1.getInt("questionAll") + "\n", rfont));
                    }
                    document.add(new Paragraph("Thng k s cu h?i ca mn h?c: \n\n", rfont));
                    PdfPTable table = new PdfPTable(2);
                    PdfPCell header1 = new PdfPCell(new Paragraph("Mn h?c", rfont));
                    PdfPCell header2 = new PdfPCell(new Paragraph("S cu h?i", rfont));
                    table.addCell(header1);
                    table.addCell(header2);
                    while (rs2.next()) {
                        PdfPCell header3 = new PdfPCell(new Paragraph(rs2.getString("subjectName"), rfont));
                        table.addCell(header3);
                        PdfPCell header4 = new PdfPCell(new Paragraph("" + rs2.getInt("questionSubject")));
                        table.addCell(header4);
                    }
                    document.add(table);
                } catch (SQLException ex) {
                    Logger.getLogger(Statistics.class.getName()).log(Level.SEVERE, null, ex);
                }
            } else if (k == 3) {
                try {
                    document.add(new Paragraph(
                            "\t\t                                                                  TH?NG K NGI DNG\n",
                            rfont));
                    String sqlUser1 = "SELECT Count(UserId) AS userAll FROM Users";
                    String sqlUser2 = "SELECT Class AS className, Count(UserId) AS userClass FROM Users GROUP BY Class";
                    ResultSet rs1 = LoadTable.Display(sqlUser1);
                    ResultSet rs2 = LoadTable.Display(sqlUser2);
                    if (rs1.next()) {
                        document.add(new Paragraph(
                                "Tng s ng?i dng l " + rs1.getInt("userAll") + "\n", rfont));
                    }
                    document.add(new Paragraph("Thng k s h?c sinh ca lp: \n\n", rfont));
                    PdfPTable table = new PdfPTable(2);
                    PdfPCell header1 = new PdfPCell(new Paragraph("Lp", rfont));
                    PdfPCell header2 = new PdfPCell(new Paragraph("S h?c sinh", rfont));
                    table.addCell(header1);
                    table.addCell(header2);
                    while (rs2.next()) {
                        PdfPCell header3 = new PdfPCell(new Paragraph(rs2.getString("className"), rfont));
                        table.addCell(header3);
                        PdfPCell header4 = new PdfPCell(new Paragraph("" + rs2.getInt("userClass")));
                        table.addCell(header4);
                    }
                    document.add(table);
                } catch (SQLException ex) {
                    Logger.getLogger(Statistics.class.getName()).log(Level.SEVERE, null, ex);
                }
            } else if (k == 4) {
                document.add(new Paragraph(
                        "\t\t                                                                        TH?NG K KT QU\n",
                        rfont));
                String sqlResult1 = "SELECT Count(*) AS resultAll FROM Results";
                String sqlResult2 = "SELECT Count(*) AS exam1 FROM Results WHERE Result <= 4";
                String sqlResult3 = "SELECT Count(*) AS exam2 FROM Results WHERE Result > 4 AND Result < 6";
                String sqlResult4 = "SELECT Count(*) AS exam3 FROM Results WHERE Result >= 6 AND Result < 8";
                String sqlResult5 = "SELECT Count(*) AS exam4 FROM Results WHERE Result >= 8";
                ResultSet rs1 = LoadTable.Display(sqlResult1);
                ResultSet rs2 = LoadTable.Display(sqlResult2);
                ResultSet rs3 = LoadTable.Display(sqlResult3);
                ResultSet rs4 = LoadTable.Display(sqlResult4);
                ResultSet rs5 = LoadTable.Display(sqlResult5);
                if (rs1.next()) {
                    document.add(
                            new Paragraph("Tng s bi thi l " + rs1.getInt("resultAll") + "\n", rfont));
                }
                document.add(new Paragraph("Thng k im thi: \n\n", rfont));
                PdfPTable table = new PdfPTable(2);
                PdfPCell header1 = new PdfPCell(new Paragraph("?im", rfont));
                PdfPCell header2 = new PdfPCell(new Paragraph("S bi thi", rfont));
                table.addCell(header1);
                table.addCell(header2);
                PdfPCell header3 = new PdfPCell(new Paragraph("<= 4"));
                table.addCell(header3);
                if (rs2.next()) {
                    PdfPCell header4 = new PdfPCell(new Paragraph(rs2.getInt("exam1")));
                    table.addCell(header4);
                }
                PdfPCell header5 = new PdfPCell(new Paragraph("> 4 v < 6"));
                table.addCell(header5);
                if (rs3.next()) {
                    PdfPCell header6 = new PdfPCell(new Paragraph(rs3.getInt("exam2")));
                    table.addCell(header6);
                }
                PdfPCell header7 = new PdfPCell(new Paragraph(">= 6 v < 8"));
                table.addCell(header7);
                if (rs4.next()) {
                    PdfPCell header8 = new PdfPCell(new Paragraph(rs4.getInt("exam3")));
                    table.addCell(header8);
                }
                PdfPCell header9 = new PdfPCell(new Paragraph(">= 8"));
                table.addCell(header9);
                if (rs5.next()) {
                    PdfPCell header10 = new PdfPCell(new Paragraph(rs5.getInt("exam4")));
                    table.addCell(header10);
                }
                document.add(table);
            }
            document.add(new Paragraph(
                    "                                                                                                  H Ni, ngy 09 thng 12 nm 2016\n",
                    rfont));
            document.add(new Paragraph(
                    "                                                                                                               Gio Vin\n",
                    rfont));
            document.add(new Paragraph(
                    "                                                                                                          "
                            + Controller.getCurrentAdmin().getAdminName() + "\n",
                    rfont));
            document.close();
            JOptionPane.showMessageDialog(null, "Save success");
        }
    } catch (FileNotFoundException ex) {
        Logger.getLogger(Statistics.class.getName()).log(Level.SEVERE, null, ex);
    } catch (DocumentException ex) {
        Logger.getLogger(Statistics.class.getName()).log(Level.SEVERE, null, ex);
    } catch (SQLException ex) {
        Logger.getLogger(Statistics.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        Logger.getLogger(Statistics.class.getName()).log(Level.SEVERE, null, ex);
    }
}