Example usage for com.lowagie.text.pdf PdfPTable setSpacingBefore

List of usage examples for com.lowagie.text.pdf PdfPTable setSpacingBefore

Introduction

In this page you can find the example usage for com.lowagie.text.pdf PdfPTable setSpacingBefore.

Prototype

public void setSpacingBefore(float spacing) 

Source Link

Document

Sets the spacing before this table.

Usage

From source file:com.krawler.esp.servlets.ExportServlet.java

License:Open Source License

private static void addTitleSubtitle(Document d) throws DocumentException, JSONException {
    java.awt.Color tColor = new Color(Integer.parseInt(config.getString("textColor"), 16));
    fontBold.setColor(tColor);//w w w .  j a v  a  2  s.c o  m
    fontRegular.setColor(tColor);
    PdfPTable table = new PdfPTable(1);
    table.setHorizontalAlignment(Element.ALIGN_CENTER);
    table.setWidthPercentage(100);
    table.setSpacingBefore(6);

    //Report Title
    PdfPCell cell = new PdfPCell(new Paragraph(config.getString("title"), fontBold));
    cell.setBorder(0);
    cell.setBorderWidth(0);
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    table.addCell(cell);

    //Report Subtitle(s)
    String[] SubTitles = config.getString("subtitles").split("~");// '~' as separator
    for (int i = 0; i < SubTitles.length; i++) {
        cell = new PdfPCell(new Paragraph(SubTitles[i], fontSmallRegular));
        cell.setBorder(0);
        cell.setBorderWidth(0);
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(cell);
    }
    table.setSpacingAfter(6);
    d.add(table);

    //Separator line
    PdfPTable line = new PdfPTable(1);
    line.setWidthPercentage(100);
    PdfPCell cell1 = null;
    cell1 = new PdfPCell(new Paragraph(""));
    cell1.setBorder(PdfPCell.BOTTOM);
    line.addCell(cell1);
    d.add(line);
}

From source file:com.krawler.esp.servlets.ExportServlet.java

License:Open Source License

private int addTable(int stcol, int stpcol, int strow, int stprow, JSONArray store, String[] colwidth2,
        String[] colHeader, String[] widths, String[] align, Document document, HttpServletRequest request,
        Session session) throws JSONException, DocumentException, SessionExpiredException {

    java.awt.Color tColor = new Color(Integer.parseInt(config.getString("textColor"), 16));
    fontSmallBold.setColor(tColor);/*from w ww.  j  a  v  a 2 s .  co m*/
    PdfPTable table;
    float[] tcol;
    tcol = new float[colHeader.length + 1];
    tcol[0] = 40;
    for (int i = 1; i < colHeader.length + 1; i++) {
        tcol[i] = Float.parseFloat(widths[i - 1]);
    }
    table = new PdfPTable(colHeader.length + 1);
    table.setWidthPercentage(tcol, document.getPageSize());
    table.setSpacingBefore(15);
    Font f1 = FontFactory.getFont("Helvetica", 8, Font.NORMAL, tColor);
    PdfPCell h2 = new PdfPCell(new Paragraph("No.", fontSmallBold));
    if (config.getBoolean("gridBorder")) {
        h2.setBorder(PdfPCell.BOX);
    } else {
        h2.setBorder(0);
    }
    h2.setPadding(4);
    h2.setBorderColor(Color.GRAY);
    h2.setHorizontalAlignment(Element.ALIGN_CENTER);
    table.addCell(h2);
    PdfPCell h1 = null;
    for (int hcol = stcol; hcol < colwidth2.length; hcol++) {
        if (align[hcol].equals("right") && !colHeader[hcol].equals("")) {
            String currency = currencyRender("", session, request);
            h1 = new PdfPCell(new Paragraph(colHeader[hcol] + "(" + currency + ")", fontSmallBold));
        } else
            h1 = new PdfPCell(new Paragraph(colHeader[hcol], fontSmallBold));
        h1.setHorizontalAlignment(Element.ALIGN_CENTER);
        if (config.getBoolean("gridBorder")) {
            h1.setBorder(PdfPCell.BOX);
        } else {
            h1.setBorder(0);
        }
        h1.setBorderColor(Color.GRAY);
        h1.setPadding(4);
        table.addCell(h1);
    }
    table.setHeaderRows(1);

    for (int row = strow; row < stprow; row++) {
        h2 = new PdfPCell(new Paragraph(String.valueOf(row + 1), f1));
        if (config.getBoolean("gridBorder")) {
            h2.setBorder(PdfPCell.BOTTOM | PdfPCell.LEFT | PdfPCell.RIGHT);
        } else {
            h2.setBorder(0);
        }
        h2.setPadding(4);
        h2.setBorderColor(Color.GRAY);
        h2.setHorizontalAlignment(Element.ALIGN_CENTER);
        h2.setVerticalAlignment(Element.ALIGN_CENTER);
        table.addCell(h2);

        JSONObject temp = store.getJSONObject(row);
        for (int col = 0; col < colwidth2.length; col++) {
            Paragraph para = null;
            if (align[col].equals("right") && !temp.getString(colwidth2[col]).equals("")) {
                String currency = currencyRender(temp.getString(colwidth2[col]), session, request);
                para = new Paragraph(currency, f1);
            } else {
                if (colwidth2[col].equals("invoiceno")) {
                    para = new Paragraph(temp.getString("no").toString(), f1);
                } else if (colwidth2[col].equals("invoicedate")) {
                    para = new Paragraph(temp.getString("date").toString(), f1);
                } else if ((temp.isNull(colwidth2[col])) && !(colwidth2[col].equals("invoiceno"))
                        && !(colwidth2[col].equals("invoicedate"))) {
                    para = new Paragraph("", fontMediumRegular);
                } else {
                    para = new Paragraph(temp.getString(colwidth2[col]).toString(), f1);
                }
            }
            h1 = new PdfPCell(para);
            if (config.getBoolean("gridBorder")) {
                h1.setBorder(PdfPCell.BOTTOM | PdfPCell.LEFT | PdfPCell.RIGHT);
            } else {
                h1.setBorder(0);
            }
            h1.setPadding(4);
            h1.setBorderColor(Color.GRAY);
            if (!align[col].equals("right") && !align[col].equals("left")) {
                h1.setHorizontalAlignment(Element.ALIGN_CENTER);
                h1.setVerticalAlignment(Element.ALIGN_CENTER);
            } else if (align[col].equals("right")) {
                h1.setHorizontalAlignment(Element.ALIGN_RIGHT);
                h1.setVerticalAlignment(Element.ALIGN_RIGHT);
            } else if (align[col].equals("left")) {
                h1.setHorizontalAlignment(Element.ALIGN_LEFT);
                h1.setVerticalAlignment(Element.ALIGN_LEFT);
            }
            table.addCell(h1);
        }
    }
    document.add(table);
    document.newPage();

    return stpcol;
}

From source file:com.krawler.spring.exportFunctionality.exportDAOImpl.java

License:Open Source License

public void addTitleSubtitle(Document d) throws ServiceException {
    try {//from  w ww . j ava  2 s . c om
        java.awt.Color tColor = new Color(Integer.parseInt(config.getString("textColor"), 16));
        PdfPTable table = new PdfPTable(1);
        table.setHorizontalAlignment(Element.ALIGN_CENTER);

        table.setWidthPercentage(100);
        table.setSpacingBefore(6);

        //Report Title
        PdfPCell cell = new PdfPCell(new Paragraph(
                fontFamilySelector.process(config.getString("title"), FontContext.REPORT_TITLE, tColor)));//fontBold));
        cell.setBorder(0);
        cell.setBorderWidth(0);
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(cell);

        //Report Subtitle(s)
        String[] SubTitles = config.getString("subtitles").split("~");// '~' as separator
        for (int i = 0; i < SubTitles.length; i++) {
            cell = new PdfPCell(
                    new Paragraph(fontFamilySelector.process(SubTitles[i], FontContext.REPORT_TITLE, tColor)));
            cell.setBorder(0);
            cell.setBorderWidth(0);
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            table.addCell(cell);
        }
        table.setSpacingAfter(6);
        d.add(table);

        //Separator line
        PdfPTable line = new PdfPTable(1);
        line.setWidthPercentage(100);
        PdfPCell cell1 = null;
        cell1 = new PdfPCell(new Paragraph(""));
        cell1.setBorder(PdfPCell.BOTTOM);
        line.addCell(cell1);
        d.add(line);
    } catch (Exception e) {
        throw ServiceException.FAILURE("exportDAOImpl.addTitleSubtitle", e);
    }
}

From source file:com.krawler.spring.exportFunctionality.exportDAOImpl.java

License:Open Source License

public int addTable(int stcol, int stpcol, int strow, int stprow, JSONArray store, String[] colwidth2,
        String[] colHeader, String[] widths, String[] align, String[] xtype, Document document)
        throws ServiceException {
    try {/*from   w  w  w  . j a  v  a2 s  .  c o m*/
        java.awt.Color tColor = new Color(Integer.parseInt(config.getString("textColor"), 16));
        PdfPTable table;
        float[] tcol;
        tcol = new float[colHeader.length + 1];
        tcol[0] = 40;
        for (int i = 1; i < colHeader.length + 1; i++) {
            tcol[i] = Float.parseFloat(widths[i - 1]);
        }
        table = new PdfPTable(colHeader.length + 1);
        table.setWidthPercentage(tcol, document.getPageSize());

        table.setSpacingBefore(15);

        PdfPCell h2 = new PdfPCell(
                new Paragraph(fontFamilySelector.process("No.", FontContext.TABLE_HEADER, tColor)));
        if (config.getBoolean("gridBorder")) {
            h2.setBorder(PdfPCell.BOX);
        } else {
            h2.setBorder(0);
        }
        h2.setPadding(4);
        h2.setBorderColor(Color.GRAY);
        h2.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(h2);
        PdfPCell h1 = null;
        for (int hcol = stcol; hcol < colwidth2.length; hcol++) {
            h1 = new PdfPCell(new Paragraph(
                    fontFamilySelector.process(colHeader[hcol], FontContext.TABLE_HEADER, tColor)));
            h1.setHorizontalAlignment(Element.ALIGN_CENTER);
            if (config.getBoolean("gridBorder")) {
                h1.setBorder(PdfPCell.BOX);
            } else {
                h1.setBorder(0);
            }
            h1.setBorderColor(Color.GRAY);
            h1.setPadding(4);
            table.addCell(h1);
        }
        table.setHeaderRows(1);

        for (int row = strow; row < stprow; row++) {
            h2 = new PdfPCell(new Paragraph(
                    fontFamilySelector.process(String.valueOf(row + 1), FontContext.TABLE_DATA, tColor)));
            if (config.getBoolean("gridBorder")) {
                h2.setBorder(PdfPCell.BOTTOM | PdfPCell.LEFT | PdfPCell.RIGHT);
            } else {
                h2.setBorder(0);
            }
            h2.setPadding(4);
            h2.setBorderColor(Color.GRAY);
            h2.setHorizontalAlignment(Element.ALIGN_CENTER);
            h2.setVerticalAlignment(Element.ALIGN_CENTER);
            table.addCell(h2);

            JSONObject temp = store.getJSONObject(row);
            for (int col = 0; col < colwidth2.length; col++) {
                String str = temp.optString((colwidth2[col]), "");
                try {
                    if (xtype.length > 0) {
                        str = formatValue(temp.optString((colwidth2[col]), ""), xtype[col]);
                    }
                } catch (Exception e) {

                }
                Paragraph para = new Paragraph(fontFamilySelector.process(str, FontContext.TABLE_DATA, tColor));
                h1 = new PdfPCell(para);
                if (config.getBoolean("gridBorder")) {
                    h1.setBorder(PdfPCell.BOTTOM | PdfPCell.LEFT | PdfPCell.RIGHT);
                } else {
                    h1.setBorder(0);
                }
                h1.setPadding(4);
                h1.setBorderColor(Color.GRAY);

                if (!align[col].equals("right") && !align[col].equals("left")) {
                    h1.setHorizontalAlignment(Element.ALIGN_CENTER);
                    h1.setVerticalAlignment(Element.ALIGN_CENTER);
                } else if (align[col].equals("right")) {
                    h1.setHorizontalAlignment(Element.ALIGN_RIGHT);
                    h1.setVerticalAlignment(Element.ALIGN_RIGHT);
                } else if (align[col].equals("left")) {
                    h1.setHorizontalAlignment(Element.ALIGN_LEFT);
                    h1.setVerticalAlignment(Element.ALIGN_LEFT);
                }
                table.addCell(h1);
            }
        }
        document.add(table);
        document.newPage();
    } catch (Exception e) {
        throw ServiceException.FAILURE("exportDAOImpl.addTable", e);
    }
    return stpcol;
}

From source file:com.krawler.spring.exportFunctionality.exportMPXDAOImpl.java

License:Open Source License

public void addTitleSubtitle(Document d) throws ServiceException {
    try {// w  w w .j av  a 2 s . c om
        java.awt.Color tColor = new Color(Integer.parseInt(config.getString("textColor"), 16));
        //            fontBold.setColor(tColor);
        //            fontRegular.setColor(tColor);
        PdfPTable table = new PdfPTable(1);
        table.setHorizontalAlignment(Element.ALIGN_CENTER);

        table.setWidthPercentage(100);
        table.setSpacingBefore(6);

        //Report Title
        PdfPCell cell = new PdfPCell(new Paragraph(
                fontFamilySelector.process(config.getString("title"), FontContext.REPORT_TITLE, tColor)));
        cell.setBorder(0);
        cell.setBorderWidth(0);
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(cell);

        //Report Subtitle(s)
        String[] SubTitles = config.getString("subtitles").split("~");// '~' as separator
        for (int i = 0; i < SubTitles.length; i++) {
            cell = new PdfPCell(new Paragraph(
                    (new Phrase(fontFamilySelector.process(SubTitles[i], FontContext.FOOTER_NOTE)))));
            cell.setBorder(0);
            cell.setBorderWidth(0);
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            table.addCell(cell);
        }
        table.setSpacingAfter(6);
        d.add(table);

        //Separator line
        PdfPTable line = new PdfPTable(1);
        line.setWidthPercentage(100);
        PdfPCell cell1 = null;
        cell1 = new PdfPCell(new Paragraph(""));
        cell1.setBorder(PdfPCell.BOTTOM);
        line.addCell(cell1);
        d.add(line);
    } catch (Exception e) {
        throw ServiceException.FAILURE("exportDAOImpl.addTitleSubtitle", e);
    }
}

From source file:com.krawler.spring.exportFunctionality.exportMPXDAOImpl.java

License:Open Source License

public int addTable(int stcol, int stpcol, int strow, int stprow, JSONArray store, String[] colwidth2,
        String[] colHeader, String[] widths, String[] align, Document document, HttpServletRequest request)
        throws ServiceException {
    try {//ww  w .  j a v a2 s.  c o  m
        DateFormat formatter = authHandlerDAOObj.getUserDateFormatter(
                sessionHandlerImpl.getDateFormatID(request), sessionHandlerImpl.getTimeZoneDifference(request),
                true);
        DateFormat frmt = authHandler.getDateFormatter(request);
        String currencyid = sessionHandlerImpl.getCurrencyID(request);
        int mode = Integer.parseInt(request.getParameter("get"));
        double totalCre = 0;
        double totalDeb = 0;
        java.awt.Color tColor = new Color(Integer.parseInt(config.getString("textColor"), 16));
        //            fontSmallRegular.setColor(tColor);
        PdfPTable table;
        float[] tcol;
        tcol = new float[colHeader.length + 1];
        tcol[0] = 40;
        for (int i = 1; i < colHeader.length + 1; i++) {
            tcol[i] = Float.parseFloat(widths[i - 1]);
        }
        table = new PdfPTable(colHeader.length + 1);
        table.setWidthPercentage(tcol, document.getPageSize());
        table.setSpacingBefore(15);
        PdfPCell h2 = new PdfPCell(new Paragraph(
                (new Phrase(fontFamilySelector.process("No.", FontContext.FOOTER_NOTE, tColor)))));
        if (config.getBoolean("gridBorder")) {
            h2.setBorder(PdfPCell.BOX);
        } else {
            h2.setBorder(0);
        }
        h2.setPadding(4);
        h2.setBorderColor(Color.GRAY);
        h2.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(h2);
        PdfPCell h1 = null;
        for (int hcol = stcol; hcol < colwidth2.length; hcol++) {
            String headerStr = StringUtil.serverHTMLStripper(colHeader[hcol]);
            if (align[hcol].equals("currency") && !colHeader[hcol].equals("")) {
                String currency = currencyRender("", currencyid);
                h1 = new PdfPCell(new Paragraph((new Phrase(fontFamilySelector
                        .process(headerStr + "(" + currency + ")", FontContext.FOOTER_NOTE, tColor)))));
            } else {
                h1 = new PdfPCell(new Paragraph(
                        (new Phrase(fontFamilySelector.process(headerStr, FontContext.FOOTER_NOTE, tColor)))));
            }
            h1.setHorizontalAlignment(Element.ALIGN_CENTER);
            if (config.getBoolean("gridBorder")) {
                h1.setBorder(PdfPCell.BOX);
            } else {
                h1.setBorder(0);
            }
            h1.setBorderColor(Color.GRAY);
            h1.setPadding(4);
            table.addCell(h1);
        }
        table.setHeaderRows(1);

        for (int row = strow; row < stprow; row++) {
            h2 = new PdfPCell(
                    new Paragraph(fontFamilySelector.process(String.valueOf(row + 1), FontContext.TABLE_DATA)));
            if (config.getBoolean("gridBorder")) {
                h2.setBorder(PdfPCell.BOTTOM | PdfPCell.LEFT | PdfPCell.RIGHT);
            } else {
                h2.setBorder(0);
            }
            h2.setPadding(4);
            h2.setBorderColor(Color.GRAY);
            h2.setHorizontalAlignment(Element.ALIGN_CENTER);
            h2.setVerticalAlignment(Element.ALIGN_CENTER);
            table.addCell(h2);

            JSONObject temp = store.getJSONObject(row);
            if (mode == 116 || mode == 117) {
                totalCre = totalCre + Double
                        .parseDouble(temp.getString("c_amount") != "" ? temp.getString("c_amount") : "0");
                totalDeb = totalDeb + Double
                        .parseDouble(temp.getString("d_amount") != "" ? temp.getString("d_amount") : "0");
            }
            for (int col = 0; col < colwidth2.length; col++) {
                Paragraph para = null;
                String rowCurrencyId = temp.has("currencyid") ? temp.getString("currencyid") : currencyid;
                if (align[col].equals("currency") && !temp.getString(colwidth2[col]).equals("")) {
                    String currency = currencyRender(temp.getString(colwidth2[col]), currencyid);
                    para = new Paragraph(fontFamilySelector.process(currency, FontContext.TABLE_DATA));
                } else if (align[col].equals("rowcurrency") && !temp.getString(colwidth2[col]).equals("")) {
                    String withCurrency = currencyRender(temp.getString(colwidth2[col]), rowCurrencyId);
                    para = new Paragraph(fontFamilySelector.process(withCurrency, FontContext.TABLE_DATA));
                } else if (align[col].equals("date") && !temp.getString(colwidth2[col]).equals("")) {
                    try {
                        String d1 = formatter.format(frmt.parse(temp.getString(colwidth2[col])));
                        para = new Paragraph(fontFamilySelector.process(d1, FontContext.TABLE_DATA));
                    } catch (Exception ex) {
                        para = new Paragraph(fontFamilySelector.process(temp.getString(colwidth2[col]),
                                FontContext.TABLE_DATA));
                    }
                } else if (colwidth2[col].equals("taxrate")
                        || colwidth2[col].equals("permargin") && !colHeader[col].equals("")) {
                    para = new Paragraph(fontFamilySelector.process(
                            htmlPercentageRender(temp.getString(colwidth2[col]), true),
                            FontContext.TABLE_DATA));
                } else {
                    if (colwidth2[col].equals("invoiceno")) {
                        para = new Paragraph(fontFamilySelector.process(temp.getString("no").toString(),
                                FontContext.TABLE_DATA));
                    } else if (colwidth2[col].equals("invoicedate")) {
                        para = new Paragraph(fontFamilySelector.process(temp.getString("date").toString(),
                                FontContext.TABLE_DATA));
                    } else if ((temp.isNull(colwidth2[col])) && !(colwidth2[col].equals("invoiceno"))
                            && !(colwidth2[col].equals("invoicedate"))) {
                        para = new Paragraph(fontFamilySelector.process("", FontContext.TABLE_DATA));
                    } else if (colwidth2[col].equals("c_date")) {
                        para = new Paragraph(fontFamilySelector.process(formatter.format(
                                frmt.parse(temp.getString("c_date").toString() == "" ? temp.getString("d_date")
                                        : temp.getString("c_date"))),
                                FontContext.TABLE_DATA));
                    } else if (colwidth2[col].equals("c_accountname")) {
                        para = new Paragraph(
                                fontFamilySelector.process(
                                        temp.getString("c_accountname").toString() == ""
                                                ? temp.getString("d_accountname").toString()
                                                : temp.getString("c_accountname").toString(),
                                        FontContext.TABLE_DATA));
                    } else if (colwidth2[col].equals("c_entryno")) {
                        para = new Paragraph(
                                fontFamilySelector.process(
                                        temp.getString("c_entryno").toString() == ""
                                                ? temp.getString("d_entryno").toString()
                                                : temp.getString("c_entryno").toString(),
                                        FontContext.TABLE_DATA));
                    } else if (colwidth2[col].equals("d_date")) {
                        para = new Paragraph(fontFamilySelector.process(formatter.format(
                                frmt.parse(temp.getString("d_date").toString() == "" ? temp.getString("c_date")
                                        : temp.getString("d_date"))),
                                FontContext.TABLE_DATA));
                    } else if (colwidth2[col].equals("d_accountname")) {
                        para = new Paragraph(
                                fontFamilySelector.process(
                                        temp.getString("d_accountname").toString() == ""
                                                ? temp.getString("c_accountname").toString()
                                                : temp.getString("d_accountname").toString(),
                                        FontContext.TABLE_DATA));
                    } else if (colwidth2[col].equals("d_entryno")) {
                        para = new Paragraph(
                                fontFamilySelector.process(
                                        temp.getString("d_entryno").toString() == ""
                                                ? temp.getString("c_entryno").toString()
                                                : temp.getString("d_entryno").toString(),
                                        FontContext.TABLE_DATA));
                    } else if (colwidth2[col].equals("perioddepreciation")) {
                        double adj = temp.getDouble("perioddepreciation") - temp.getDouble("firstperiodamt");
                        String currency = currencyRender("" + adj, currencyid);
                        if (adj < 0.0001) {
                            para = new Paragraph(fontFamilySelector.process("", FontContext.TABLE_DATA));
                        } else {
                            para = new Paragraph(fontFamilySelector.process(currency, FontContext.TABLE_DATA));
                        }
                    } else if (colHeader[col].equals("Opening Balance")
                            || colHeader[col].equals("Asset Value")) {
                        String currency = currencyRender("" + Math.abs(temp.getDouble("openbalance")),
                                currencyid);
                        para = new Paragraph(fontFamilySelector.process(currency, FontContext.TABLE_DATA));
                    } else {
                        if (colHeader[col].equals("Opening Balance Type")) {
                            double bal = Double.parseDouble(temp.getString(colwidth2[col]));
                            String str = bal == 0 ? "" : (bal < 0 ? "Credit" : "Debit");
                            if (str.equals(""))
                                str = "N/A";
                            para = new Paragraph(fontFamilySelector.process(str, FontContext.TABLE_DATA));
                        } else {
                            para = new Paragraph(fontFamilySelector.process(
                                    temp.getString(colwidth2[col]).toString(), FontContext.TABLE_DATA));
                        }
                    }
                }
                h1 = new PdfPCell(para);
                if (config.getBoolean("gridBorder")) {
                    h1.setBorder(PdfPCell.BOTTOM | PdfPCell.LEFT | PdfPCell.RIGHT);
                } else {
                    h1.setBorder(0);
                }
                h1.setPadding(4);
                h1.setBorderColor(Color.GRAY);
                if (align[col].equals("currency") || align[col].equals("rowcurrency")
                        || colwidth2[col].equals("taxrate") || colwidth2[col].equals("permargin")) {
                    h1.setHorizontalAlignment(Element.ALIGN_RIGHT);
                    h1.setVerticalAlignment(Element.ALIGN_RIGHT);
                } else if (align[col].equals("date")) {
                    h1.setHorizontalAlignment(Element.ALIGN_CENTER);
                    h1.setVerticalAlignment(Element.ALIGN_CENTER);
                } else {
                    h1.setHorizontalAlignment(Element.ALIGN_LEFT);
                    h1.setVerticalAlignment(Element.ALIGN_LEFT);
                }
                table.addCell(h1);
            }
        }
        if (mode == 116 || mode == 117) {
            Paragraph para1 = null;
            PdfPCell h3 = null;
            String totCr = "";
            String totDb = "";
            h3 = new PdfPCell(new Paragraph(fontFamilySelector.process("", FontContext.TABLE_DATA)));
            if (config.getBoolean("gridBorder")) {
                h3.setBorder(PdfPCell.BOTTOM | PdfPCell.LEFT);
            } else {
                h3.setBorder(0);
            }
            h3.setPadding(4);
            h3.setBorderColor(Color.GRAY);
            h3.setBackgroundColor(Color.lightGray);
            h3.setHorizontalAlignment(Element.ALIGN_CENTER);
            h3.setVerticalAlignment(Element.ALIGN_CENTER);
            table.addCell(h3);
            para1 = new Paragraph(fontFamilySelector.process("Total", FontContext.REPORT_TITLE));
            h3 = new PdfPCell(para1);
            if (config.getBoolean("gridBorder")) {
                h3.setBorder(PdfPCell.BOTTOM | PdfPCell.LEFT | PdfPCell.RIGHT);
            } else {
                h3.setBorder(0);
            }
            h3.setPadding(4);
            h3.setBorderColor(Color.GRAY);
            h3.setBackgroundColor(Color.LIGHT_GRAY);
            h3.setHorizontalAlignment(Element.ALIGN_LEFT);
            h3.setVerticalAlignment(Element.ALIGN_LEFT);
            table.addCell(h3);

            for (int col = 1; col < colwidth2.length; col++) {
                if (colwidth2[col].equals("c_amount")) {
                    totCr = currencyRender(String.valueOf(totalCre), currencyid);
                    para1 = new Paragraph(fontFamilySelector.process(totCr, FontContext.TABLE_DATA));
                } else if (colwidth2[col].equals("d_amount")) {
                    totDb = currencyRender(String.valueOf(totalDeb), currencyid);
                    para1 = new Paragraph(fontFamilySelector.process(totDb, FontContext.TABLE_DATA));
                } else {
                    para1 = new Paragraph(fontFamilySelector.process("", FontContext.TABLE_DATA));
                }

                h3 = new PdfPCell(para1);
                if (config.getBoolean("gridBorder")) {
                    h3.setBorder(PdfPCell.BOTTOM | PdfPCell.LEFT | PdfPCell.RIGHT);
                } else {
                    h3.setBorder(0);
                }
                h3.setPadding(4);
                h3.setBorderColor(Color.GRAY);
                h3.setBackgroundColor(Color.LIGHT_GRAY);
                h3.setHorizontalAlignment(Element.ALIGN_RIGHT);
                h3.setVerticalAlignment(Element.ALIGN_RIGHT);
                table.addCell(h3);

            }
        }
        document.add(table);
        document.newPage();
    } catch (Exception e) {
        throw ServiceException.FAILURE("exportDAOImpl.addTable", e);
    }
    return stpcol;
}

From source file:com.krawler.spring.exportFunctionality.exportMPXDAOImpl.java

License:Open Source License

public int addGroupableTable(JSONObject groupingConfig, String groupByField, String groupHeaderText, int stcol,
        int stpcol, int strow, int stprow, JSONArray store, String[] dataIndexArr, String[] colHeader,
        String[] widths, String[] align, Document document, HttpServletRequest request)
        throws ServiceException {
    try {//from w  w  w  . j a va  2 s . c  o m
        String groupSummaryField = groupingConfig.getString("groupSummaryField");
        String groupSummaryText = groupingConfig.getString("groupSummaryText");
        String reportSummaryField = groupingConfig.getString("reportSummaryField");
        String reportSummaryText = groupingConfig.getString("reportSummaryText");

        DateFormat formatter = authHandlerDAOObj.getUserDateFormatter(
                sessionHandlerImpl.getDateFormatID(request), sessionHandlerImpl.getTimeZoneDifference(request),
                true);
        DateFormat frmt = authHandler.getDateFormatter(request);
        String currencyid = sessionHandlerImpl.getCurrencyID(request);
        java.awt.Color tColor = new Color(Integer.parseInt(config.getString("textColor"), 16));
        java.awt.Color gsBGColor = new Color(Integer.parseInt("E5E5E5", 16));
        java.awt.Color rsBGColor = new Color(Integer.parseInt("808080", 16));
        //            fontRegular.setColor(tColor);
        PdfPTable table;

        float[] tcol;
        tcol = new float[colHeader.length + 1];
        tcol[0] = 40;
        for (int i = 1; i < colHeader.length + 1; i++) {
            tcol[i] = Float.parseFloat(widths[i - 1]);
        }
        table = new PdfPTable(colHeader.length + 1);
        table.setWidthPercentage(tcol, document.getPageSize());
        table.setSpacingBefore(15);
        PdfPCell h2 = new PdfPCell(
                new Paragraph(fontFamilySelector.process("No.", FontContext.TABLE_HEADER, tColor)));
        if (config.getBoolean("gridBorder")) {
            h2.setBorder(PdfPCell.BOX);
        } else {
            h2.setBorder(0);
        }
        h2.setPadding(4);
        h2.setBorderColor(Color.GRAY);
        h2.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(h2);
        PdfPCell h1 = null;
        for (int hcol = stcol; hcol < dataIndexArr.length; hcol++) {
            if (align[hcol].equals("currency") && !colHeader[hcol].equals("")) {
                String currency = currencyRender("", currencyid);
                h1 = new PdfPCell(new Paragraph(fontFamilySelector
                        .process(colHeader[hcol] + "(" + currency + ")", FontContext.TABLE_HEADER, tColor)));
            } else {
                h1 = new PdfPCell(new Paragraph(
                        fontFamilySelector.process(colHeader[hcol], FontContext.TABLE_HEADER, tColor)));
            }
            h1.setHorizontalAlignment(Element.ALIGN_CENTER);
            if (config.getBoolean("gridBorder")) {
                h1.setBorder(PdfPCell.BOX);
            } else {
                h1.setBorder(0);
            }
            h1.setBorderColor(Color.GRAY);
            h1.setPadding(4);
            table.addCell(h1);
        }
        table.setHeaderRows(1);
        String groupName = "", rowCurrency = "";
        Double subTotal = 0.0;
        Double grandTotal = 0.0;
        int rowSpan = 0;
        for (int row = strow; row < stprow; row++) {
            rowSpan++;
            JSONObject rowData = store.getJSONObject(row);
            if (row == 0) {
                groupName = rowData.getString(groupByField);
                rowCurrency = rowData.has("currencyid") ? rowData.getString("currencyid") : currencyid;
                subTotal = 0.0;
                addGroupRow(groupHeaderText + ": " + groupName, currencyid, table, dataIndexArr);
            }
            if (!groupName.equalsIgnoreCase(rowData.getString(groupByField))) {
                addSummaryRow(groupSummaryText + groupName + " ", subTotal, rowCurrency, table, dataIndexArr,
                        false, gsBGColor);
                groupName = rowData.getString(groupByField);
                rowCurrency = rowData.has("currencyid") ? rowData.getString("currencyid") : currencyid;
                addGroupRow(groupHeaderText + ": " + groupName, currencyid, table, dataIndexArr);
                subTotal = 0.0;
                rowSpan = 1;
            }
            subTotal += Double.parseDouble(rowData.getString(groupSummaryField));
            grandTotal += Double.parseDouble(rowData.getString(reportSummaryField));
            rowCurrency = rowData.has("currencyid") ? rowData.getString("currencyid") : currencyid;

            h2 = new PdfPCell(new Paragraph(
                    fontFamilySelector.process(String.valueOf(row + 1), FontContext.TABLE_HEADER, tColor)));
            if (config.getBoolean("gridBorder")) {
                h2.setBorder(PdfPCell.BOTTOM | PdfPCell.LEFT | PdfPCell.RIGHT);
            } else {
                h2.setBorder(0);
            }
            h2.setPadding(4);
            h2.setBorderColor(Color.GRAY);
            h2.setHorizontalAlignment(Element.ALIGN_CENTER);
            h2.setVerticalAlignment(Element.ALIGN_CENTER);
            table.addCell(h2);

            for (int col = 0; col < dataIndexArr.length; col++) {
                String cellData = null;
                if (align[col].equals("currency") && !rowData.getString(dataIndexArr[col]).equals("")) {
                    cellData = currencyRender(rowData.getString(dataIndexArr[col]),
                            rowData.getString("currencyid"));
                } else if (align[col].equals("date") && !rowData.getString(dataIndexArr[col]).equals("")) {
                    try {
                        cellData = formatter.format(frmt.parse(rowData.getString(dataIndexArr[col])));
                    } catch (Exception ex) {
                        cellData = rowData.getString(dataIndexArr[col]);
                    }
                } else {
                    cellData = rowData.getString(dataIndexArr[col]);
                }

                Paragraph para = new Paragraph(
                        fontFamilySelector.process(cellData, FontContext.TABLE_HEADER, tColor));
                h1 = new PdfPCell(para);
                if (config.getBoolean("gridBorder")) {
                    h1.setBorder(PdfPCell.BOTTOM | PdfPCell.LEFT | PdfPCell.RIGHT);
                } else {
                    h1.setBorder(0);
                }
                h1.setPadding(4);
                h1.setBorderColor(Color.GRAY);

                if (!align[col].equals("currency") && !align[col].equals("date")) {
                    h1.setHorizontalAlignment(Element.ALIGN_LEFT);
                    h1.setVerticalAlignment(Element.ALIGN_LEFT);
                } else if (align[col].equals("currency")) {
                    h1.setHorizontalAlignment(Element.ALIGN_RIGHT);
                    h1.setVerticalAlignment(Element.ALIGN_RIGHT);
                } else if (align[col].equals("date")) {
                    h1.setHorizontalAlignment(Element.ALIGN_CENTER);
                    h1.setVerticalAlignment(Element.ALIGN_CENTER);
                }
                table.addCell(h1);
            }
        }
        if (rowSpan > 0) {
            addSummaryRow(groupSummaryText + groupName + " ", subTotal, rowCurrency, table, dataIndexArr, false,
                    gsBGColor);
        }
        addSummaryRow(reportSummaryText, grandTotal, currencyid, table, dataIndexArr, false, rsBGColor);

        document.add(table);
        document.newPage();
    } catch (Exception e) {
        throw ServiceException.FAILURE("exportDAOImpl.addTable", e);
    }
    return stpcol;
}

From source file:com.krawler.spring.hrms.exportreport.exportAppraisalReportPDFDAOImpl.java

License:Open Source License

private ByteArrayOutputStream AppraisalDetail(HttpServletRequest request, Session session, boolean isEmm,
        String str, String goalstr, String quesansstr)
        throws JSONException, SessionExpiredException, DocumentException, ServiceException, IOException {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    String[] colHeader = {//from  w  w w .j a v a  2  s . com
            messageSource.getMessage("hrms.common.employee.name", null, RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.appraisal.cycle.name", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.appraisal.start.date", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.appraisal.end.date", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.total.appraisals", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.common.Updates.NoofAppraisalsSubmitted", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.overall.self.comments", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.overall.appraiser.comments", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.overall.competency.score", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.competencies", null,
                    RequestContextUtils.getLocale(request)) };
    String[] colHeader1 = {
            messageSource.getMessage("hrms.common.employee.name", null, RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.appraisal.cycle.name", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.appraisal.start.date", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.appraisal.end.date", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.total.appraisals", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.common.Updates.NoofAppraisalsSubmitted", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.overall.appraiser.comments", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.overall.competency.score", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.competencies", null,
                    RequestContextUtils.getLocale(request)) };
    String[] colHeader2 = {
            messageSource.getMessage("hrms.common.employee.name", null, RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.appraisal.cycle.name", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.appraisal.start.date", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.appraisal.end.date", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.total.appraisals", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.common.Updates.NoofAppraisalsSubmitted", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.overall.competency.score", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.competencies", null,
                    RequestContextUtils.getLocale(request)) };
    String[] dataIndex = { "empname", "appcylename", "appcylestdate", "appcylendate", "totalappraisal",
            "appraisalsubmitted", "empcomment", "mancom", "manavgwght", "" };
    String[] dataIndex1 = { "empname", "appcylename", "appcylestdate", "appcylendate", "totalappraisal",
            "appraisalsubmitted", "mancom", "manavgwght", "" };
    String[] dataIndex2 = { "empname", "appcylename", "appcylestdate", "appcylendate", "totalappraisal",
            "appraisalsubmitted", "manavgwght", "" };
    String[] compHeader = {
            messageSource.getMessage("hrms.common.name", null, RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.description", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.self.appraisal.score", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.self.appraisal.comment", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.appraiser.competency.score", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.appraiser.comments", null,
                    RequestContextUtils.getLocale(request)) };
    String[] compDataIndex = { "comptename", "comptdesc", "selfcompscore", "selfcomment", "compmanwght" };
    String[] compGoalHeader = {
            messageSource.getMessage("hrms.performance.goals", null, RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.common.assigned.by", null, RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.appraiser.rating", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.appraiser.comment", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.self.rating", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.self.comments", null,
                    RequestContextUtils.getLocale(request)) };
    String[] compGoalDataIndex = { "gname", "assignedby", "gmanrat", "mangoalcomment", "gemprat",
            "empgoalcomment" };
    String[] quesAnsHeader1 = {
            messageSource.getMessage("hrms.performance.Questions", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.appraiser.response", null,
                    RequestContextUtils.getLocale(request)) };
    String[] quesAnsHeader = {
            messageSource.getMessage("hrms.performance.Questions", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.appraiser.response", null,
                    RequestContextUtils.getLocale(request)),
            messageSource.getMessage("hrms.performance.self.response", null,
                    RequestContextUtils.getLocale(request)) };
    String[] quesAnsDataIndex = { hrmsAnonymousAppraisalConstants.question,
            hrmsAnonymousAppraisalConstants.answer, hrmsAnonymousAppraisalConstants.employeeanswer };
    String[] quesAnsDataIndex1 = { hrmsAnonymousAppraisalConstants.question,
            hrmsAnonymousAppraisalConstants.answer };
    String managerComments = "";
    String scoreAvg = "";
    String companyid = null;
    PdfWriter writer = null;
    try {
        String usID = request.getParameter("userid");
        String self = request.getParameter("self");
        Boolean removecolumn = false;
        if (!StringUtil.isNullOrEmpty(self) && self.equals("false")) {
            quesAnsHeader = quesAnsHeader1;
            quesAnsDataIndex = quesAnsDataIndex1;
            colHeader = colHeader1;
            dataIndex = dataIndex1;
            removecolumn = true;
        }

        if (StringUtil.isNullOrEmpty(usID)) {
            usID = sessionHandlerImplObj.getUserid(request);
        }
        if (StringUtil.isNullOrEmpty(request.getParameter("pdfEmail")))
            companyid = sessionHandlerImplObj.getCompanyid(request);
        else {
            User u = (User) hibernateTemplate.get(User.class, usID);
            companyid = u.getCompany().getCompanyID();
        }

        HashMap<String, Object> requestParams = new HashMap<String, Object>();
        //                companyid  = sessionHandlerImplObj.getCompanyid(request);

        requestParams.put("companyid", companyid);
        requestParams.put("checklink", "appraisal");
        if (!hrmsCommonDAOObj.checkModule(requestParams).isSuccessFlag()) {
            quesAnsHeader = quesAnsHeader1;
            quesAnsDataIndex = quesAnsDataIndex1;
            colHeader = colHeader1;
            removecolumn = true;
        }
        requestParams.clear();
        requestParams.put("companyid", companyid);
        requestParams.put("checklink", "overallcomments");
        if (!hrmsCommonDAOObj.checkModule(requestParams).isSuccessFlag()) {
            colHeader = colHeader2;
            dataIndex = dataIndex2;
        }

        requestParams.clear();
        Document document = new Document(PageSize.A4.rotate(), 25, 25, 25, 25);
        writer = PdfWriter.getInstance(document, baos);
        writer.setPageEvent(new EndPage());
        document.open();
        java.awt.Color tColor = new Color(9, 9, 9);
        //fontSmallBold.setColor(tColor);
        Paragraph p = new Paragraph();

        PdfPTable table = new PdfPTable(2);
        table.setWidthPercentage(100);
        table.setWidths(new float[] { 55, 75 });

        PdfPTable mainTable = new PdfPTable(1);
        mainTable.setTotalWidth(90);
        mainTable.setWidthPercentage(100);
        mainTable.setSpacingBefore(20);

        PdfPCell headcell = null;
        headcell = new PdfPCell(
                new Paragraph(fontFamilySelector.process(
                        messageSource.getMessage("hrms.performance.appraisal.details", null,
                                RequestContextUtils.getLocale(request)),
                        FontContext.REGULAR_BOLD_HELVETICA, tColor)));
        headcell.setBackgroundColor(new Color(0xEEEEEE));
        headcell.setPadding(5);
        mainTable.addCell(headcell);
        document.add(mainTable);

        //                String str=hrmsManager.getAppraisalReport(session, request);
        JSONObject jobjTemplate = new JSONObject(str);
        com.krawler.utils.json.base.JSONArray jarr = jobjTemplate.getJSONArray("data");
        com.krawler.utils.json.base.JSONArray jarr2 = jarr.getJSONObject(0).getJSONArray("data");
        JSONObject jobjAppraisal = new JSONObject(jarr2.getString(0));
        jarr = jobjAppraisal.getJSONArray("competencies");
        int headlen = colHeader.length;
        if (jarr.length() < 1) {
            headlen = headlen - 2;
        }

        for (int i = 0; i < headlen; i++) {
            PdfPCell pcell = new PdfPCell(
                    new Paragraph(fontFamilySelector.process(colHeader[i], FontContext.MEDIUM_BOLD_HELVETICA)));
            pcell.setBorder(0);
            if (i == 0)
                pcell.setPaddingTop(10);
            pcell.setPaddingLeft(15);
            pcell.setPaddingBottom(4);
            pcell.setBorderColor(new Color(0xF2F2F2));
            pcell.setHorizontalAlignment(Element.ALIGN_LEFT);
            pcell.setVerticalAlignment(Element.ALIGN_LEFT);
            table.addCell(pcell);

            if (!dataIndex[i].equals("mancom")) {
                pcell = new PdfPCell(new Paragraph(fontFamilySelector.process(!dataIndex[i].equals("")
                        ? !jobjAppraisal.isNull(dataIndex[i]) ? jobjAppraisal.getString(dataIndex[i]) : ""
                        : "", FontContext.SMALL_NORMAL_HELVETICA)));
                if (i == 0)
                    pcell.setPaddingTop(10);
                pcell.setBorder(0);
                pcell.setPaddingLeft(10);
                pcell.setPaddingBottom(4);
                pcell.setBorderColor(new Color(0xF2F2F2));
                pcell.setHorizontalAlignment(Element.ALIGN_LEFT);
                pcell.setVerticalAlignment(Element.ALIGN_LEFT);
                table.addCell(pcell);
            } else {
                if (!jobjAppraisal.isNull(dataIndex[i])) {
                    JSONArray spl = new JSONArray(jobjAppraisal.getString(dataIndex[i]));
                    String strData = "";
                    for (int counter = 0; counter < spl.length(); counter++) {
                        strData += spl.getString(counter) + "\n";
                    }
                    pcell = new PdfPCell(new Paragraph(
                            fontFamilySelector.process(strData, FontContext.SMALL_NORMAL_HELVETICA)));
                    if (i == 0)
                        pcell.setPaddingTop(10);
                    pcell.setBorder(0);
                    pcell.setPaddingLeft(10);
                    pcell.setPaddingBottom(4);
                    pcell.setBorderColor(new Color(0xF2F2F2));
                    pcell.setHorizontalAlignment(Element.ALIGN_LEFT);
                    pcell.setVerticalAlignment(Element.ALIGN_LEFT);
                    table.addCell(pcell);
                }
            }
        }

        document.add(table);

        PdfPTable quesansTable = new PdfPTable(quesAnsHeader.length);
        quesansTable.setWidthPercentage(100);
        if (removecolumn) {
            quesansTable.setWidths(new float[] { 40, 40 });
        } else {
            quesansTable.setWidths(new float[] { 40, 40, 40 });
        }
        quesansTable.setSpacingBefore(20);
        quesansTable.setHeaderRows(1);
        for (int i = 0; i < quesAnsHeader.length; i++) {
            PdfPCell pgcell = new PdfPCell(new Paragraph(
                    fontFamilySelector.process(quesAnsHeader[i], FontContext.MEDIUM_BOLD_HELVETICA)));
            pgcell.setBorder(0);
            pgcell.setBorder(PdfPCell.BOX);
            pgcell.setPadding(4);
            pgcell.setBorderColor(Color.GRAY);
            pgcell.setHorizontalAlignment(Element.ALIGN_CENTER);
            quesansTable.addCell(pgcell);
        }

        JSONObject quesansjobj = new JSONObject(quesansstr);
        JSONArray quesansjarr = quesansjobj.getJSONArray("quesans");
        JSONObject qajobj = new JSONObject();
        for (int i = 0; i < quesansjarr.length(); i++) {
            qajobj = quesansjarr.getJSONObject(i);
            for (int k = 0; k < quesAnsHeader.length; k++) {
                String qatext = !qajobj.isNull(quesAnsDataIndex[k]) ? qajobj.getString(quesAnsDataIndex[k])
                        : "";
                qatext = qatext.replaceAll("~", "\n\n");
                qatext = qatext.replaceAll("\n", "<br/>");
                StyleSheet st = new StyleSheet();
                st.loadTagStyle("body", "face", "HELVETICA");
                st.loadTagStyle("body", "size", "1");
                st.loadTagStyle("body", "leading", "8,0");
                StringReader stringReader = new StringReader(qatext);
                PdfPCell pcell = new PdfPCell();
                ArrayList listStr = HTMLWorker.parseToList(stringReader, st);
                pcell.setPadding(4);
                for (int htmlCount = 0; htmlCount < listStr.size(); ++htmlCount) {
                    if (!listStr.get(htmlCount).toString().equals("[]"))
                        pcell.addElement((Element) listStr.get(htmlCount));
                }

                pcell.setBorder(PdfPCell.BOTTOM | PdfPCell.LEFT | PdfPCell.RIGHT);
                pcell.setBorderColor(Color.GRAY);
                pcell.setPadding(4);
                pcell.setHorizontalAlignment(Element.ALIGN_LEFT);
                pcell.setVerticalAlignment(Element.ALIGN_CENTER);
                quesansTable.addCell(pcell);
            }
        }
        document.add(quesansTable);

        PdfPTable compTable = new PdfPTable(6);
        compTable.setWidthPercentage(100);
        compTable.setWidths(new float[] { 50, 60, 30, 50, 42, 70 });
        compTable.setSpacingBefore(20);
        compTable.setHeaderRows(1);

        for (int i = 0; i < compHeader.length; i++) {
            PdfPCell pcell = new PdfPCell(new Paragraph(
                    fontFamilySelector.process(compHeader[i], FontContext.MEDIUM_BOLD_HELVETICA)));
            pcell.setBorder(0);
            pcell.setBorder(PdfPCell.BOX);
            pcell.setPadding(4);
            pcell.setBorderColor(Color.GRAY);
            pcell.setHorizontalAlignment(Element.ALIGN_CENTER);
            compTable.addCell(pcell);
        }

        for (int i = 0; i < jarr.length(); i++) {
            jobjAppraisal = jarr.getJSONObject(i);
            for (int k = 0; k < compHeader.length; k++) {
                if (k != compHeader.length - 1) {
                    scoreAvg = "";
                    if (!jobjAppraisal.isNull(compDataIndex[k]) && compDataIndex[k].equals("compmanwght")) {
                        scoreAvg = jobjAppraisal.getString("nominalRat");
                        Chunk chunk1 = fontFamilySelector.processChunk(
                                jobjAppraisal.getString(compDataIndex[k]) + "\n\n",
                                FontContext.SMALL_NORMAL_HELVETICA);
                        Chunk chunk2 = null;
                        requestParams.clear();
                        if (!StringUtil.isNullOrEmpty(request.getParameter("pdfEmail"))) {
                            //                                User user=(User)session.get(User.class,request.getParameter("userid"));
                            //                                companyid=user.getCompany().getCompanyID();
                            requestParams.put("companyid", companyid);
                            requestParams.put("checklink", "modaverage");
                            if (hrmsCommonDAOObj.checkModule(requestParams).isSuccessFlag()) {
                                chunk2 = fontFamilySelector.processChunk("["
                                        + messageSource.getMessage("hrms.performance.mod.avg", null,
                                                RequestContextUtils.getLocale(request))
                                        + ":  " + scoreAvg + " ]", FontContext.SMALL_NORMAL_HELVETICA);
                            } else {
                                chunk2 = fontFamilySelector.processChunk("["
                                        + messageSource.getMessage("hrms.performance.avg", null,
                                                RequestContextUtils.getLocale(request))
                                        + ":  " + scoreAvg + " ]", FontContext.SMALL_NORMAL_HELVETICA);
                            }
                        } else {
                            requestParams.put("companyid", companyid);
                            requestParams.put("checklink", "modaverage");
                            if (hrmsCommonDAOObj.checkModule(requestParams).isSuccessFlag()) {
                                chunk2 = fontFamilySelector.processChunk("["
                                        + messageSource.getMessage("hrms.performance.mod.avg", null,
                                                RequestContextUtils.getLocale(request))
                                        + ":  " + scoreAvg + " ]", FontContext.SMALL_NORMAL_HELVETICA);
                            } else {
                                chunk2 = fontFamilySelector.processChunk("["
                                        + messageSource.getMessage("hrms.performance.avg", null,
                                                RequestContextUtils.getLocale(request))
                                        + ":  " + scoreAvg + " ]", FontContext.SMALL_NORMAL_HELVETICA);
                            }
                        }
                        Phrase phrase1 = new Phrase();
                        phrase1.add(chunk1);
                        phrase1.add(chunk2);

                        p = new Paragraph();
                        p.add(phrase1);
                    }
                    PdfPCell pcell = new PdfPCell();
                    if (!scoreAvg.equals("")) {
                        pcell = new PdfPCell(new Paragraph(p));
                        pcell.setPadding(0);
                        pcell.setPaddingTop(2);
                        pcell.setPaddingBottom(4);
                    } else {
                        if (!jobjAppraisal.isNull(compDataIndex[k])) {
                            String htmlStr = jobjAppraisal.getString(compDataIndex[k]);
                            htmlStr = htmlStr.replaceAll("\n", "<br>");
                            StyleSheet st = new StyleSheet();
                            st.loadTagStyle("body", "face", "HELVETICA");
                            st.loadTagStyle("body", "size", "1");
                            st.loadTagStyle("body", "leading", "8,0");
                            HTMLWorker worker = new HTMLWorker(document);
                            StringReader stringReader = new StringReader(htmlStr);
                            ArrayList<Element> listStr = HTMLWorker.parseToList(stringReader, st);
                            pcell.setPadding(4);
                            for (int htmlCount = 0; htmlCount < listStr.size(); ++htmlCount) {
                                if (!listStr.get(htmlCount).getChunks().isEmpty()) {
                                    pcell.addElement(fontFamilySelector.processElement(
                                            listStr.get(htmlCount).getChunks(),
                                            FontContext.SMALL_NORMAL_HELVETICA));
                                }
                            }
                        } else
                            pcell = new PdfPCell(new Paragraph(fontFamilySelector.process(
                                    !jobjAppraisal.isNull(compDataIndex[k]) ? StringUtil
                                            .serverHTMLStripper(jobjAppraisal.getString(compDataIndex[k])) : "",
                                    FontContext.SMALL_NORMAL_HELVETICA)));
                    }
                    pcell.setBorder(PdfPCell.BOTTOM | PdfPCell.LEFT | PdfPCell.RIGHT);
                    pcell.setBorderColor(Color.GRAY);
                    pcell.setHorizontalAlignment(
                            compDataIndex[k].equals("comptename") || compDataIndex[k].equals("comptdesc")
                                    || compDataIndex[k].equals("selfcomment") ? Element.ALIGN_LEFT
                                            : Element.ALIGN_CENTER);
                    pcell.setVerticalAlignment(
                            compDataIndex[k].equals("comptdesc") || compDataIndex[k].equals("comptdesc")
                                    || compDataIndex[k].equals("selfcomment") ? Element.ALIGN_LEFT
                                            : Element.ALIGN_CENTER);
                    compTable.addCell(pcell);

                } else {
                    jarr2 = jobjAppraisal.getJSONArray("comments");
                    managerComments = "";
                    int commentCount = 1;
                    for (int j = jarr2.length() - 1; j >= 0; j--) {
                        jobjTemplate = jarr2.getJSONObject(j);
                        managerComments += commentCount + ")  " + jobjTemplate.getString("managercomment")
                                + "\n\n";
                        commentCount++;
                    }
                    PdfPCell pcell = new PdfPCell(new Paragraph(
                            fontFamilySelector.process(managerComments, FontContext.SMALL_NORMAL_HELVETICA)));
                    pcell.setBorder(PdfPCell.BOTTOM | PdfPCell.LEFT | PdfPCell.RIGHT);
                    pcell.setPadding(4);
                    pcell.setBorderColor(Color.GRAY);
                    pcell.setHorizontalAlignment(Element.ALIGN_LEFT);
                    pcell.setVerticalAlignment(Element.ALIGN_LEFT);
                    compTable.addCell(pcell);
                }
            }
        }
        document.add(compTable);
        PdfPCell pcell;
        if (jarr.length() > 0) {
            PdfPTable helpTable = new PdfPTable(1);
            helpTable.setTotalWidth(90);
            helpTable.setWidthPercentage(100);
            helpTable.setSpacingBefore(20);

            pcell = new PdfPCell(new Paragraph(fontFamilySelector.process(
                    messageSource.getMessage("hrms.performance.mod.avg", null,
                            RequestContextUtils.getLocale(request))
                            + ". : "
                            + messageSource.getMessage("hrms.performance.mode.average.ratings", null,
                                    RequestContextUtils.getLocale(request)),
                    FontContext.SMALL_BOLD_HELVETICA)));
            pcell.setBorder(0);
            pcell.setPadding(4);
            pcell.setHorizontalAlignment(Element.ALIGN_LEFT);
            helpTable.addCell(pcell);

            requestParams.clear();
            requestParams.put("companyid", companyid);
            requestParams.put("checklink", "modaverage");
            if (!StringUtil.isNullOrEmpty(request.getParameter("pdfEmail"))) {
                if (hrmsCommonDAOObj.checkModule(requestParams).isSuccessFlag()) {
                    document.add(helpTable);
                }
            } else {
                if (hrmsCommonDAOObj.checkModule(requestParams).isSuccessFlag()) {
                    document.add(helpTable);
                }
            }
        }
        PdfPTable compgTable = new PdfPTable(6);
        compgTable.setWidthPercentage(100);
        compgTable.setWidths(new float[] { 50, 60, 30, 50, 42, 70 });
        compgTable.setSpacingBefore(20);
        compgTable.setHeaderRows(1);
        for (int i = 0; i < compGoalHeader.length; i++) {
            PdfPCell pgcell = new PdfPCell(new Paragraph(
                    fontFamilySelector.process(compGoalHeader[i], FontContext.MEDIUM_BOLD_HELVETICA)));
            pgcell.setBorder(0);
            pgcell.setBorder(PdfPCell.BOX);
            pgcell.setPadding(4);
            pgcell.setBorderColor(Color.GRAY);
            pgcell.setHorizontalAlignment(Element.ALIGN_CENTER);
            compgTable.addCell(pgcell);
        }

        JSONObject jobjTemplates = new JSONObject(goalstr);
        com.krawler.utils.json.base.JSONArray jarr11 = jobjTemplates.getJSONArray("data");
        JSONObject jobjl = new JSONObject();
        for (int i = 0; i < jarr11.length(); i++) {
            jobjl = jarr11.getJSONObject(i);
            for (int k = 0; k < compHeader.length; k++) {
                pcell = new PdfPCell(
                        new Paragraph(
                                fontFamilySelector.process(
                                        !jobjl.isNull(compGoalDataIndex[k]) ? StringUtil
                                                .serverHTMLStripper(jobjl.getString(compGoalDataIndex[k])) : "",
                                        FontContext.SMALL_NORMAL_HELVETICA)));
                pcell.setBorder(PdfPCell.BOTTOM | PdfPCell.LEFT | PdfPCell.RIGHT);
                pcell.setBorderColor(Color.GRAY);
                pcell.setPadding(4);
                pcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                pcell.setVerticalAlignment(Element.ALIGN_CENTER);
                compgTable.addCell(pcell);
            }
        }
        document.add(compgTable);

        document.newPage();
        document.close();
    } catch (DocumentException ex) {
        ex.printStackTrace();
        throw ServiceException.FAILURE("AppraisalDetails.AppraisalDetail", ex);
    } catch (JSONException e) {
        e.printStackTrace();
        throw ServiceException.FAILURE("AppraisalDetails.AppraisalDetail", e);
    } catch (Exception ex) {
        ex.printStackTrace();
        throw ServiceException.FAILURE(ex.getMessage(), ex);
    } finally {
        writer.close();
    }
    return baos;

}

From source file:com.krawler.spring.hrms.printreport.PrintAppraisalReportDAOImp.java

License:Open Source License

public void createPDFPriview(HttpServletRequest request, HttpServletResponse response, JSONArray obj,
        Map<String, String> personalData) {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    Document document = new Document(PageSize.A4.rotate(), 25, 25, 25, 25);

    PdfWriter writer = null;//www . java2 s .c o  m
    try {
        HashMap<String, Object> requestParams = new HashMap<String, Object>();

        boolean isQuestion = request.getParameter("question").equals("true") ? true : false;
        boolean promotion = request.getParameter("promotion").equals("false") ? false : true;
        Boolean isMyAppraisal = Boolean.parseBoolean(personalData.get("isMyAppraisal"));
        CompanyPreferences companyPreferences = (CompanyPreferences) hibernateTemplate
                .get(CompanyPreferences.class, sessionHandlerImplObj.getCompanyid(request));
        writer = PdfWriter.getInstance(document, baos);
        writer.setPageEvent(new EndPage());
        document.open();
        java.awt.Color tColor = new Color(9, 9, 9);
        //fontSmallBold.setColor(tColor);

        //heading
        PdfPTable headTable = new PdfPTable(1);
        headTable.setTotalWidth(90);
        headTable.setWidthPercentage(100);
        headTable.setSpacingBefore(20);
        PdfPCell headcell = new PdfPCell(
                new Paragraph(fontFamilySelector.process(messageSource.getMessage("hrms.common.AppraisalForm",
                        null, RequestContextUtils.getLocale(request)), FontContext.REGULAR_BOLD_HELVETICA)));
        headcell.setBackgroundColor(new Color(0xEEEEEE));
        headcell.setPadding(5);
        headTable.addCell(headcell);
        document.add(headTable);
        //heading

        //Details
        int flag = 0;
        String appDetailsParam[] = {
                messageSource.getMessage("hrms.performance.appraisal.cycle.name", null,
                        RequestContextUtils.getLocale(request)) + ":  ",
                messageSource.getMessage("hrms.common.employee.name", null,
                        RequestContextUtils.getLocale(request)) + ":  ",
                messageSource.getMessage("hrms.performance.appraisal.cycle.period", null,
                        RequestContextUtils.getLocale(request)) + ":  ",
                messageSource.getMessage("hrms.Masters.Designation", null,
                        RequestContextUtils.getLocale(request)) + ":  ",
                messageSource.getMessage("hrms.performance.performance.rating", null,
                        RequestContextUtils.getLocale(request)) + "*:  " };
        String appDetailsValue[] = { personalData.get("appcycname"), personalData.get("empname"),
                messageSource.getMessage("hrms.common.form", null, RequestContextUtils.getLocale(request))
                        + ": " + personalData.get("startdate") + " "
                        + messageSource.getMessage("hrms.common.to", null,
                                RequestContextUtils.getLocale(request))
                        + ": " + personalData.get("enddate"),
                personalData.get("desgname"), personalData.get("performance") };

        requestParams.clear();
        requestParams.put("companyid", sessionHandlerImplObj.getCompanyid(request));
        requestParams.put("checklink", "promotion");
        if (!hrmsCommonDAOObj.checkModule(requestParams).isSuccessFlag()) {
            flag = 1;
        }

        PdfPTable appDetailsTable = new PdfPTable(2);
        appDetailsTable.setWidthPercentage(100);
        appDetailsTable.setWidths(new float[] { 55, 75 });
        if (isMyAppraisal) {
            flag = 1;
        }

        for (int i = 0; i < (appDetailsParam.length - flag); i++) {
            PdfPCell pcell = new PdfPCell(new Paragraph(
                    fontFamilySelector.process(appDetailsParam[i], FontContext.MEDIUM_BOLD_HELVETICA)));
            pcell.setBorder(0);
            pcell.setPaddingTop(10);
            pcell.setPaddingLeft(15);
            pcell.setPaddingBottom(4);
            pcell.setBorderColor(new Color(0xF2F2F2));
            pcell.setHorizontalAlignment(Element.ALIGN_LEFT);
            pcell.setVerticalAlignment(Element.ALIGN_LEFT);
            appDetailsTable.addCell(pcell);

            PdfPCell pcell1 = new PdfPCell(new Paragraph(
                    fontFamilySelector.process(appDetailsValue[i], FontContext.SMALL_NORMAL_HELVETICA)));
            pcell1.setBorder(0);
            pcell1.setPaddingTop(10);
            pcell1.setPaddingLeft(15);
            pcell1.setPaddingBottom(4);
            pcell1.setBorderColor(new Color(0xF2F2F2));
            pcell1.setHorizontalAlignment(Element.ALIGN_LEFT);
            pcell1.setVerticalAlignment(Element.ALIGN_LEFT);
            appDetailsTable.addCell(pcell1);
        }

        requestParams.clear();
        requestParams.put("companyid", sessionHandlerImplObj.getCompanyid(request));
        requestParams.put("checklink", "overallcomments");
        if (hrmsCommonDAOObj.checkModule(requestParams).isSuccessFlag()) {
            PdfPCell pcell = new PdfPCell(new Paragraph(fontFamilySelector.process(
                    (isMyAppraisal
                            ? messageSource.getMessage("hrms.performance.self.overall.comment", null,
                                    RequestContextUtils.getLocale(request)) + ":  "
                            : messageSource.getMessage("hrms.performance.overall.appraiser.comments", null,
                                    RequestContextUtils.getLocale(request)) + ":  "),
                    FontContext.MEDIUM_BOLD_HELVETICA)));
            pcell.setBorder(0);
            pcell.setPaddingTop(10);
            pcell.setPaddingLeft(15);
            pcell.setPaddingBottom(4);
            pcell.setBorderColor(new Color(0xF2F2F2));
            pcell.setHorizontalAlignment(Element.ALIGN_LEFT);
            pcell.setVerticalAlignment(Element.ALIGN_LEFT);
            appDetailsTable.addCell(pcell);

            PdfPCell pcell1 = new PdfPCell(new Paragraph(fontFamilySelector.process(
                    (isMyAppraisal ? personalData.get("selfcomment") : personalData.get("empcomment")),
                    FontContext.SMALL_NORMAL_HELVETICA)));
            pcell1.setBorder(0);
            pcell1.setPaddingTop(10);
            pcell1.setPaddingLeft(15);
            pcell1.setPaddingBottom(4);
            pcell1.setBorderColor(new Color(0xF2F2F2));
            pcell1.setHorizontalAlignment(Element.ALIGN_LEFT);
            pcell1.setVerticalAlignment(Element.ALIGN_LEFT);
            appDetailsTable.addCell(pcell1);
        }

        requestParams.clear();
        requestParams.put("companyid", sessionHandlerImplObj.getCompanyid(request));
        requestParams.put("checklink", "promotion");
        if (!isMyAppraisal && hrmsCommonDAOObj.checkModule(requestParams).isSuccessFlag()) {
            PdfPCell pcell = new PdfPCell(new Paragraph(fontFamilySelector.process(
                    messageSource.getMessage("hrms.performance.promotion.recommendation", null,
                            RequestContextUtils.getLocale(request)) + ":  ",
                    FontContext.MEDIUM_BOLD_HELVETICA)));
            pcell.setBorder(0);
            pcell.setPaddingTop(10);
            pcell.setPaddingLeft(15);
            pcell.setPaddingBottom(4);
            pcell.setBorderColor(new Color(0xF2F2F2));
            pcell.setHorizontalAlignment(Element.ALIGN_LEFT);
            pcell.setVerticalAlignment(Element.ALIGN_LEFT);
            appDetailsTable.addCell(pcell);

            PdfPCell pcell1 = new PdfPCell(new Paragraph(fontFamilySelector.process(
                    (promotion
                            ? messageSource.getMessage("hrms.MasterData.Yes", null,
                                    RequestContextUtils.getLocale(request))
                            : messageSource.getMessage("hrms.MasterData.No", null,
                                    RequestContextUtils.getLocale(request))),
                    FontContext.SMALL_NORMAL_HELVETICA)));
            pcell1.setBorder(0);
            pcell1.setPaddingTop(10);
            pcell1.setPaddingLeft(15);
            pcell1.setPaddingBottom(4);
            pcell1.setBorderColor(new Color(0xF2F2F2));
            pcell1.setHorizontalAlignment(Element.ALIGN_LEFT);
            pcell1.setVerticalAlignment(Element.ALIGN_LEFT);
            appDetailsTable.addCell(pcell1);
        }

        if (promotion && !isMyAppraisal && hrmsCommonDAOObj.checkModule(requestParams).isSuccessFlag()) {
            String[] appDetaisPromotionParam = {
                    messageSource.getMessage("hrms.performance.new.department", null,
                            RequestContextUtils.getLocale(request)) + ":  ",
                    messageSource.getMessage("hrms.performance.new.designation", null,
                            RequestContextUtils.getLocale(request)) + ":  ",
                    messageSource.getMessage("hrms.performance.salary.increment", null,
                            RequestContextUtils.getLocale(request)) + "(%):  " };
            String[] appDetaisPromotionValue = {
                    personalData.get("newDept") != null ? personalData.get("newDept") : "",
                    personalData.get("newDesig") != null ? personalData.get("newDesig") : "",
                    personalData.get("salInc") != null ? personalData.get("salInc") : "" };
            for (int i = 0; i < appDetaisPromotionParam.length; i++) {
                PdfPCell pcell = new PdfPCell(new Paragraph(fontFamilySelector
                        .process(appDetaisPromotionParam[i], FontContext.MEDIUM_BOLD_HELVETICA)));
                pcell.setBorder(0);
                pcell.setPaddingTop(10);
                pcell.setPaddingLeft(15);
                pcell.setPaddingBottom(4);
                pcell.setBorderColor(new Color(0xF2F2F2));
                pcell.setHorizontalAlignment(Element.ALIGN_LEFT);
                pcell.setVerticalAlignment(Element.ALIGN_LEFT);
                appDetailsTable.addCell(pcell);

                PdfPCell pcell1 = new PdfPCell(new Paragraph(fontFamilySelector
                        .process(appDetaisPromotionValue[i], FontContext.SMALL_NORMAL_HELVETICA)));
                pcell1.setBorder(0);
                pcell1.setPaddingTop(10);
                pcell1.setPaddingLeft(15);
                pcell1.setPaddingBottom(4);
                pcell1.setBorderColor(new Color(0xF2F2F2));
                pcell1.setHorizontalAlignment(Element.ALIGN_LEFT);
                pcell1.setVerticalAlignment(Element.ALIGN_LEFT);
                appDetailsTable.addCell(pcell1);
            }
        }
        document.add(appDetailsTable);
        //Details

        //Comp
        requestParams.clear();
        requestParams.put("companyid", sessionHandlerImplObj.getCompanyid(request));
        requestParams.put("checklink", "competency");
        if (hrmsCommonDAOObj.checkModule(requestParams).isSuccessFlag()) {
            try {
                if (!isQuestion) {
                    JSONArray jsonComp = obj.getJSONArray(0);
                    if (!isMyAppraisal) {
                        String[] compParam = {
                                messageSource.getMessage("hrms.performance.competency", null,
                                        RequestContextUtils.getLocale(request)),
                                messageSource.getMessage("hrms.performance.competency.description", null,
                                        RequestContextUtils.getLocale(request)),
                                messageSource.getMessage("hrms.performance.weightage", null,
                                        RequestContextUtils.getLocale(request)),
                                messageSource.getMessage("hrms.performance.appraiser.rating", null,
                                        RequestContextUtils.getLocale(request)),
                                messageSource.getMessage("hrms.performance.appraiser.comment", null,
                                        RequestContextUtils.getLocale(request)) };
                        String[] colParam = { "cmptname", "cmptdesc", "cmptwt", "manrat", "mancompcomment" };
                        PdfPTable questionTable = null;
                        if (companyPreferences.isWeightage()) {
                            questionTable = new PdfPTable(5);
                            questionTable.setWidths(new float[] { 50, 60, 30, 30, 42 });
                        } else {
                            questionTable = new PdfPTable(4);
                            questionTable.setWidths(new float[] { 50, 60, 30, 42 });
                        }
                        questionTable.setWidthPercentage(100);
                        questionTable.setSpacingBefore(20);
                        questionTable.setHeaderRows(1);
                        for (int i = 0; i < compParam.length; i++) {
                            if (!(!companyPreferences.isWeightage() && i == 2)) {
                                PdfPCell pgcell = new PdfPCell(new Paragraph(fontFamilySelector
                                        .process(compParam[i], FontContext.MEDIUM_BOLD_HELVETICA)));
                                pgcell.setBorder(0);
                                pgcell.setBorder(PdfPCell.BOX);
                                pgcell.setPadding(4);
                                pgcell.setBorderColor(Color.GRAY);
                                pgcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                                questionTable.addCell(pgcell);
                            }
                        }

                        for (int i = 0; i < jsonComp.length(); i++) {
                            for (int j = 0; j < colParam.length; j++) {
                                if (!(!companyPreferences.isWeightage() && j == 2)) {
                                    PdfPCell pcell = null;
                                    if (j != 3)
                                        pcell = new PdfPCell(
                                                new Paragraph(fontFamilySelector.process(
                                                        jsonComp.getJSONObject(i).has(colParam[j]) ? jsonComp
                                                                .getJSONObject(i).getString(colParam[j]) : "",
                                                        FontContext.SMALL_NORMAL_HELVETICA)));
                                    else {
                                        pcell = new PdfPCell(new Paragraph(fontFamilySelector.process(
                                                jsonComp.getJSONObject(i).has(colParam[j])
                                                        ? (jsonComp.getJSONObject(i).getString(colParam[j])
                                                                .equals("0")
                                                                        ? ""
                                                                        : jsonComp.getJSONObject(i)
                                                                                .getString(colParam[j]))
                                                        : "",
                                                FontContext.SMALL_NORMAL_HELVETICA)));
                                    }
                                    pcell.setBorder(PdfPCell.BOTTOM | PdfPCell.LEFT | PdfPCell.RIGHT);
                                    pcell.setBorderColor(Color.GRAY);
                                    pcell.setPadding(4);
                                    pcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                                    pcell.setVerticalAlignment(Element.ALIGN_CENTER);
                                    questionTable.addCell(pcell);
                                }
                            }
                        }
                        document.add(questionTable);
                    } else {
                        String[] compParam = {
                                messageSource.getMessage("hrms.performance.competency", null,
                                        RequestContextUtils.getLocale(request)),
                                messageSource.getMessage("hrms.performance.competency.description", null,
                                        RequestContextUtils.getLocale(request)),
                                messageSource.getMessage("hrms.performance.weightage", null,
                                        RequestContextUtils.getLocale(request)),
                                messageSource.getMessage("hrms.performance.self.rating", null,
                                        RequestContextUtils.getLocale(request)),
                                messageSource.getMessage("hrms.performance.self.comments", null,
                                        RequestContextUtils.getLocale(request)) };
                        String[] colParam = { "cmptname", "cmptdesc", "cmptwt", "emprat", "empcompcomment" };
                        PdfPTable questionTable = null;
                        if (companyPreferences.isWeightage()) {
                            questionTable = new PdfPTable(5);
                            questionTable.setWidths(new float[] { 50, 60, 30, 30, 42 });
                        } else {
                            questionTable = new PdfPTable(4);
                            questionTable.setWidths(new float[] { 50, 60, 30, 42 });
                        }
                        questionTable.setWidthPercentage(100);
                        questionTable.setSpacingBefore(20);
                        questionTable.setHeaderRows(1);
                        for (int i = 0; i < compParam.length; i++) {
                            if (!(!companyPreferences.isWeightage() && i == 2)) {
                                PdfPCell pgcell = new PdfPCell(new Paragraph(fontFamilySelector
                                        .process(compParam[i], FontContext.MEDIUM_BOLD_HELVETICA)));
                                pgcell.setBorder(0);
                                pgcell.setBorder(PdfPCell.BOX);
                                pgcell.setPadding(4);
                                pgcell.setBorderColor(Color.GRAY);
                                pgcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                                questionTable.addCell(pgcell);
                            }
                        }

                        for (int i = 0; i < jsonComp.length(); i++) {
                            for (int j = 0; j < colParam.length; j++) {
                                if (!(!companyPreferences.isWeightage() && j == 2)) {
                                    PdfPCell pcell;
                                    if (j != 3)
                                        pcell = new PdfPCell(
                                                new Paragraph(fontFamilySelector.process(
                                                        jsonComp.getJSONObject(i).has(colParam[j]) ? jsonComp
                                                                .getJSONObject(i).getString(colParam[j]) : "",
                                                        FontContext.SMALL_NORMAL_HELVETICA)));
                                    else
                                        pcell = new PdfPCell(new Paragraph(fontFamilySelector.process(
                                                jsonComp.getJSONObject(i).has(colParam[j])
                                                        ? (jsonComp.getJSONObject(i).getString(colParam[j])
                                                                .equals("0")
                                                                        ? ""
                                                                        : jsonComp.getJSONObject(i)
                                                                                .getString(colParam[j]))
                                                        : "",
                                                FontContext.SMALL_NORMAL_HELVETICA)));
                                    pcell.setBorder(PdfPCell.BOTTOM | PdfPCell.LEFT | PdfPCell.RIGHT);
                                    pcell.setBorderColor(Color.GRAY);
                                    pcell.setPadding(4);
                                    pcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                                    pcell.setVerticalAlignment(Element.ALIGN_CENTER);
                                    questionTable.addCell(pcell);
                                }
                            }
                        }
                        document.add(questionTable);
                    }
                } else {//Questions
                    try {
                        JSONArray jsonQues = obj.getJSONArray(1);
                        JSONArray jsonAnsTemp = obj.getJSONArray(2);
                        JSONArray jsonAns = new JSONArray();

                        PdfPTable quesMainTable = new PdfPTable(1);
                        quesMainTable.setTotalWidth(90);
                        quesMainTable.setWidthPercentage(100);
                        quesMainTable.setSpacingBefore(20);
                        quesMainTable.setSkipFirstHeader(true);
                        PdfPCell quesHeadcell = new PdfPCell(new Paragraph(fontFamilySelector.process(
                                messageSource.getMessage("hrms.performance.qualitative.appraisal", null,
                                        RequestContextUtils.getLocale(request)),
                                FontContext.MEDIUM_BOLD_HELVETICA)));
                        quesHeadcell.setPadding(5);
                        quesMainTable.addCell(quesHeadcell);
                        document.add(quesMainTable);

                        PdfPTable[] quesTable = new PdfPTable[jsonQues.length()];

                        try {
                            for (int i = 0; i < jsonQues.length(); i++) {
                                String qid = (String) jsonQues.getJSONObject(i).get("qdescription");
                                for (int j = 0; j < jsonAnsTemp.length(); j++) {
                                    try {
                                        if (qid.equals((String) jsonAnsTemp.getJSONObject(j).get("question"))) {
                                            jsonAns.put(jsonAnsTemp.getJSONObject(j));
                                            break;
                                        }
                                    } catch (JSONException e) {
                                        jsonAns.put("");
                                    }
                                }
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }

                        for (int i = 0; i < jsonQues.length(); i++) {
                            quesTable[i] = new PdfPTable(2);
                            quesTable[i].setWidthPercentage(90);
                            quesTable[i].setWidths(new float[] { 10, 80 });
                            quesTable[i].setSpacingBefore(20);
                            quesTable[i].setHeaderRows(1);

                            PdfPCell pgcell1 = new PdfPCell(new Paragraph(fontFamilySelector.process(
                                    messageSource.getMessage("hrms.performance.que", null,
                                            RequestContextUtils.getLocale(request)) + ".",
                                    FontContext.SMALL_NORMAL_HELVETICA)));
                            pgcell1.setBorder(0);
                            pgcell1.setBorder(PdfPCell.BOX);
                            pgcell1.setPadding(4);
                            pgcell1.setHorizontalAlignment(Element.ALIGN_CENTER);
                            quesTable[i].addCell(pgcell1);

                            PdfPCell pgcell2 = new PdfPCell(
                                    new Paragraph(
                                            fontFamilySelector
                                                    .process(
                                                            jsonQues.getJSONObject(i).has("qdesc") ? jsonQues
                                                                    .getJSONObject(i).getString("qdesc") : "",
                                                            FontContext.SMALL_NORMAL_HELVETICA)));
                            pgcell2.setBorder(0);
                            pgcell2.setBorder(PdfPCell.BOX);
                            pgcell2.setPadding(4);
                            pgcell2.setHorizontalAlignment(Element.ALIGN_LEFT);
                            quesTable[i].addCell(pgcell2);

                            int cnt = 0;
                            try {
                                cnt = jsonQues.getJSONObject(i).has("qans")
                                        ? Integer.parseInt(jsonQues.getJSONObject(i).getString("qans"))
                                        : 0;
                            } catch (NumberFormatException e) {
                                e.printStackTrace();
                            }
                            if (jsonAns.length() > 0) {
                                JSONArray arr = jsonAns.getJSONObject(i).getJSONArray("answer");
                                for (int j = 0; j < arr.length(); j++) {
                                    PdfPCell pcell1 = new PdfPCell(new Paragraph(fontFamilySelector
                                            .process((j + 1) + "", FontContext.SMALL_NORMAL_HELVETICA)));
                                    pcell1.setBorder(PdfPCell.BOTTOM | PdfPCell.LEFT | PdfPCell.RIGHT);
                                    pcell1.setBorderColor(Color.GRAY);
                                    pcell1.setPadding(4);
                                    pcell1.setHorizontalAlignment(Element.ALIGN_CENTER);
                                    pcell1.setVerticalAlignment(Element.ALIGN_CENTER);
                                    quesTable[i].addCell(pcell1);

                                    PdfPCell pcell2 = new PdfPCell(new Paragraph(fontFamilySelector.process(
                                            arr.getJSONObject(j).getString("" + j + ""),
                                            FontContext.SMALL_NORMAL_HELVETICA)));
                                    pcell2.setBorder(PdfPCell.BOTTOM | PdfPCell.LEFT | PdfPCell.RIGHT);
                                    pcell2.setBorderColor(Color.GRAY);
                                    pcell2.setPadding(4);
                                    pcell2.setHorizontalAlignment(Element.ALIGN_LEFT);
                                    pcell2.setVerticalAlignment(Element.ALIGN_CENTER);
                                    quesTable[i].addCell(pcell2);
                                }
                            } else {
                                for (int j = 0; j < cnt; j++) {
                                    PdfPCell pcell1 = new PdfPCell(new Paragraph(fontFamilySelector
                                            .process((j + 1) + "", FontContext.SMALL_NORMAL_HELVETICA)));
                                    pcell1.setBorder(PdfPCell.BOTTOM | PdfPCell.LEFT | PdfPCell.RIGHT);
                                    pcell1.setBorderColor(Color.GRAY);
                                    pcell1.setPadding(4);
                                    pcell1.setHorizontalAlignment(Element.ALIGN_CENTER);
                                    pcell1.setVerticalAlignment(Element.ALIGN_CENTER);
                                    quesTable[i].addCell(pcell1);

                                    PdfPCell pcell = new PdfPCell(new Paragraph(fontFamilySelector.process("",
                                            FontContext.SMALL_NORMAL_HELVETICA)));
                                    pcell.setBorder(PdfPCell.BOTTOM | PdfPCell.LEFT | PdfPCell.RIGHT);
                                    pcell.setBorderColor(Color.GRAY);
                                    pcell.setPadding(4);
                                    pcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                                    pcell.setVerticalAlignment(Element.ALIGN_CENTER);
                                    quesTable[i].addCell(pcell);
                                }
                            }
                            PdfPCell pcell = new PdfPCell(new Paragraph(
                                    fontFamilySelector.process(" ", FontContext.SMALL_NORMAL_HELVETICA)));
                            pcell.setBorder(PdfPCell.BOTTOM | PdfPCell.LEFT | PdfPCell.RIGHT);
                            pcell.setBorderColor(Color.GRAY);
                            pcell.setPadding(4);
                            pcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                            pcell.setVerticalAlignment(Element.ALIGN_CENTER);
                            //questionTable.addCell(pcell);

                            document.add(quesTable[i]);
                        }
                        //document.add(questionTable);
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
        //Comp

        //Goals
        requestParams.clear();
        requestParams.put("companyid", sessionHandlerImplObj.getCompanyid(request));
        requestParams.put("checklink", "goal");
        if (hrmsCommonDAOObj.checkModule(requestParams).isSuccessFlag()) {
            try {
                JSONArray jsonGoals = obj.getJSONArray(3);
                if (!isMyAppraisal) {
                    String goalParam[] = {
                            messageSource.getMessage("hrms.performance.goals", null,
                                    RequestContextUtils.getLocale(request)),
                            messageSource.getMessage("hrms.performance.percent.completed", null,
                                    RequestContextUtils.getLocale(request)),
                            messageSource.getMessage("hrms.performance.goal.weightage", null,
                                    RequestContextUtils.getLocale(request)),
                            messageSource.getMessage("hrms.performance.appraiser.rating", null,
                                    RequestContextUtils.getLocale(request)),
                            messageSource.getMessage("hrms.performance.appraiser.comment", null,
                                    RequestContextUtils.getLocale(request)) };
                    String colHeader[] = { "gname", "gcomplete", "gwth", "gmanrat", "mangoalcomment" };
                    PdfPTable goalTable = null;
                    if (companyPreferences.isWeightage()) {
                        goalTable = new PdfPTable(5);
                        goalTable.setWidths(new float[] { 50, 60, 30, 30, 42 });
                    } else {
                        goalTable = new PdfPTable(4);
                        goalTable.setWidths(new float[] { 50, 60, 30, 42 });
                    }
                    goalTable.setWidthPercentage(100);
                    goalTable.setSpacingBefore(20);
                    goalTable.setHeaderRows(1);
                    for (int i = 0; i < goalParam.length; i++) {
                        if (!(!companyPreferences.isWeightage() && i == 2)) {
                            PdfPCell pgcell = new PdfPCell(new Paragraph(fontFamilySelector
                                    .process(goalParam[i], FontContext.MEDIUM_BOLD_HELVETICA)));
                            pgcell.setBorder(0);
                            pgcell.setBorder(PdfPCell.BOX);
                            pgcell.setPadding(4);
                            pgcell.setBorderColor(Color.GRAY);
                            pgcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                            goalTable.addCell(pgcell);
                        }
                    }

                    for (int i = 0; i < jsonGoals.length(); i++) {
                        for (int j = 0; j < colHeader.length; j++) {
                            if (!(!companyPreferences.isWeightage() && j == 2)) {
                                PdfPCell pcell;
                                if (j != 3)
                                    pcell = new PdfPCell(
                                            new Paragraph(
                                                    fontFamilySelector
                                                            .process(
                                                                    jsonGoals.getJSONObject(i).has(colHeader[j])
                                                                            ? jsonGoals.getJSONObject(i)
                                                                                    .getString(colHeader[j])
                                                                            : "",
                                                                    FontContext.SMALL_NORMAL_HELVETICA)));
                                else
                                    pcell = new PdfPCell(new Paragraph(fontFamilySelector.process(
                                            jsonGoals.getJSONObject(i).has(colHeader[j])
                                                    ? (jsonGoals.getJSONObject(i).getString(colHeader[j])
                                                            .equals("0")
                                                                    ? ""
                                                                    : jsonGoals.getJSONObject(i)
                                                                            .getString(colHeader[j]))
                                                    : "",
                                            FontContext.SMALL_NORMAL_HELVETICA)));
                                pcell.setBorder(PdfPCell.BOTTOM | PdfPCell.LEFT | PdfPCell.RIGHT);
                                pcell.setBorderColor(Color.GRAY);
                                pcell.setPadding(4);
                                pcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                                pcell.setVerticalAlignment(Element.ALIGN_CENTER);
                                goalTable.addCell(pcell);
                            }
                        }
                    }
                    document.add(goalTable);
                } else {
                    String goalParam[] = {
                            messageSource.getMessage("hrms.performance.goals", null,
                                    RequestContextUtils.getLocale(request)),
                            messageSource.getMessage("hrms.performance.percent.completed", null,
                                    RequestContextUtils.getLocale(request)),
                            messageSource.getMessage("hrms.performance.goal.weightage", null,
                                    RequestContextUtils.getLocale(request)),
                            messageSource.getMessage("hrms.performance.self.rating", null,
                                    RequestContextUtils.getLocale(request)),
                            messageSource.getMessage("hrms.performance.self.comments", null,
                                    RequestContextUtils.getLocale(request)),
                            messageSource.getMessage("hrms.common.assigned.by", null,
                                    RequestContextUtils.getLocale(request)) };
                    String colHeader[] = { "gname", "gcomplete", "gwth", "gemprat", "empgoalcomment",
                            "assignedby" };
                    PdfPTable goalTable = null;
                    if (companyPreferences.isWeightage()) {
                        goalTable = new PdfPTable(6);
                        goalTable.setWidths(new float[] { 50, 60, 30, 50, 42, 60 });
                    } else {
                        goalTable = new PdfPTable(5);
                        goalTable.setWidths(new float[] { 50, 60, 50, 42, 60 });
                    }
                    goalTable.setWidthPercentage(100);
                    goalTable.setSpacingBefore(20);
                    goalTable.setHeaderRows(1);
                    for (int i = 0; i < goalParam.length; i++) {
                        if (!(!companyPreferences.isWeightage() && i == 2)) {
                            PdfPCell pgcell = new PdfPCell(new Paragraph(fontFamilySelector
                                    .process(goalParam[i], FontContext.MEDIUM_BOLD_HELVETICA)));
                            pgcell.setBorder(0);
                            pgcell.setBorder(PdfPCell.BOX);
                            pgcell.setPadding(4);
                            pgcell.setBorderColor(Color.GRAY);
                            pgcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                            goalTable.addCell(pgcell);
                        }
                    }

                    for (int i = 0; i < jsonGoals.length(); i++) {
                        for (int j = 0; j < colHeader.length; j++) {
                            if (!(!companyPreferences.isWeightage() && j == 2)) {
                                PdfPCell pcell;
                                if (j != 3)
                                    pcell = new PdfPCell(
                                            new Paragraph(
                                                    fontFamilySelector
                                                            .process(
                                                                    jsonGoals.getJSONObject(i).has(colHeader[j])
                                                                            ? jsonGoals.getJSONObject(i)
                                                                                    .getString(colHeader[j])
                                                                            : "",
                                                                    FontContext.SMALL_NORMAL_HELVETICA)));
                                else
                                    pcell = new PdfPCell(new Paragraph(fontFamilySelector.process(
                                            jsonGoals.getJSONObject(i).has(colHeader[j])
                                                    ? (jsonGoals.getJSONObject(i).getString(colHeader[j])
                                                            .equals("0")
                                                                    ? ""
                                                                    : jsonGoals.getJSONObject(i)
                                                                            .getString(colHeader[j]))
                                                    : "",
                                            FontContext.SMALL_NORMAL_HELVETICA)));
                                pcell.setBorder(PdfPCell.BOTTOM | PdfPCell.LEFT | PdfPCell.RIGHT);
                                pcell.setBorderColor(Color.GRAY);
                                pcell.setPadding(4);
                                pcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                                pcell.setVerticalAlignment(Element.ALIGN_CENTER);
                                goalTable.addCell(pcell);
                            }
                        }
                    }
                    document.add(goalTable);
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
        //Goals

        document.newPage();
        document.close();
        response.setHeader("Content-Disposition", "attachment; filename=\"" + "App_Form" + ".pdf\"");
        response.setContentType("application/octet-stream");
        response.setContentLength(baos.size());
        response.getOutputStream().write(baos.toByteArray());
    } catch (DocumentException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        writer.close();
    }
}

From source file:com.prime.location.billing.InvoicedBillingManager.java

/**
 * Print invoice//from ww  w.j  av a2s. c om
 */
public void printInvoice() {
    try { //catch better your exceptions, this is just an example
        FacesContext context = FacesContext.getCurrentInstance();

        Document pdf = new Document(PageSize.A4, 5f, 5f, 75f, 45f);

        String fileName = "PDFFile";

        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        PdfWriter writer = PdfWriter.getInstance(pdf, baos);
        TableHeader event = new TableHeader();
        event.setHeader("Header Here");
        writer.setPageEvent(event);

        if (!pdf.isOpen()) {
            pdf.open();
        }

        PdfPCell cell;

        PdfPTable header = new PdfPTable(new float[] { 1, 2, 1 });
        cell = new PdfPCell(new Paragraph("INVOICE",
                FontFactory.getFont(FontFactory.HELVETICA, 16, Font.BOLDITALIC, Color.BLACK)));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        cell.setColspan(3);
        cell.setBorder(Rectangle.NO_BORDER);
        header.addCell(cell);
        header.setTotalWidth(527);
        header.setLockedWidth(true);

        cell = new PdfPCell(new Phrase("Agency: " + selectedAgency.getDescription()));
        cell.setColspan(2);
        cell.setBorder(Rectangle.NO_BORDER);
        header.addCell(cell);

        cell = new PdfPCell(new Phrase("Invoice#: " + selectedInvoice.getId()));
        cell.setBorder(Rectangle.NO_BORDER);
        cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
        header.addCell(cell);

        cell = new PdfPCell(
                new Phrase("Date: " + DateUtility.dateTimeFormat(selectedInvoice.getInvoiceDate())));
        cell.setColspan(3);
        cell.setBorder(Rectangle.NO_BORDER);
        cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
        header.addCell(cell);

        pdf.add(header);

        PdfPTable table = new PdfPTable(new float[] { 1, 3, 2, 1 });
        table.setSpacingBefore(15f);

        table.setTotalWidth(527);
        table.setLockedWidth(true);
        //table.setWidths(new int[]{3, 1, 1});

        table.getDefaultCell().setBackgroundColor(Color.LIGHT_GRAY);

        table.addCell("Date");
        table.addCell("Name");
        table.addCell("Service");
        table.addCell("Rate");

        table.getDefaultCell().setBackgroundColor(null);

        cell = new PdfPCell(new Phrase("Total(US$): "));
        cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
        cell.setColspan(3);
        cell.setBackgroundColor(Color.LIGHT_GRAY);
        table.addCell(cell);

        cell = new PdfPCell(new Phrase(new DecimalFormat("###,###.###").format(selectedInvoice.getAmount())));
        cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
        cell.setBackgroundColor(Color.LIGHT_GRAY);
        table.addCell(cell);

        // There are three special rows
        table.setHeaderRows(2);
        // One of them is a footer
        table.setFooterRows(1);
        Font f = FontFactory.getFont(FontFactory.HELVETICA, 10);
        //add remaining
        for (AgencyBilling billing : selectedInvoice.getBillings()) {
            table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);
            table.getDefaultCell().setVerticalAlignment(Element.ALIGN_MIDDLE);
            table.getDefaultCell().setIndent(2);
            table.getDefaultCell().setFixedHeight(20);

            table.addCell(new Phrase(DateUtility.dateFormat(billing.getBillingDate()), f));
            table.addCell(new Phrase(billing.getPerson().getName(), f));
            table.addCell(new Phrase(billing.getTariff().getTariffType().getDescription(), f));
            cell = new PdfPCell(new Phrase(new DecimalFormat("###,###.###").format(billing.getRate()), f));
            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);

            table.addCell(cell);

        }

        pdf.add(table);

        writer.getAcroForm().setNeedAppearances(true);

        //document.add(new Phrase(TEXT));
        //Keep modifying your pdf file (add pages and more)
        pdf.close();

        writePDFToResponse(context.getExternalContext(), baos, fileName);

        context.responseComplete();

    } catch (Exception e) {
        //e.printStackTrace();          
    }
}