Example usage for com.lowagie.text Phrase Phrase

List of usage examples for com.lowagie.text Phrase Phrase

Introduction

In this page you can find the example usage for com.lowagie.text Phrase Phrase.

Prototype

public Phrase(float leading, String string) 

Source Link

Document

Constructs a Phrase with a certain leading and a certain String.

Usage

From source file:com.krawler.esp.handlers.PdfGenHandler.java

License:Open Source License

public static ByteArrayOutputStream getInvoiceForm1(String invoice) {
    ByteArrayOutputStream os = null;
    try {/*  w w  w. j  a va 2s  .c o  m*/
        os = new ByteArrayOutputStream();
        Document document = new Document(PageSize.A4, 15, 15, 15, 15);
        PdfWriter writer = PdfWriter.getInstance(document, os);
        Font font7 = FontFactory.getFont("Helvetica", 8, Font.BOLD, Color.BLACK);
        Font font10 = FontFactory.getFont("Helvetica", 14, Font.BOLD, Color.BLACK);
        HeaderFooter temp = new HeaderFooter(new Phrase(
                String.format("Note: This is a computer generated document and does not require signature"),
                font7), false);
        temp.setAlignment(Element.ALIGN_CENTER);
        document.setFooter(temp);
        document.open();
        JSONObject jbj = new JSONObject(invoice);
        String currency = "";
        com.krawler.utils.json.base.JSONArray gridinfo = jbj.getJSONArray("items");
        String ids[] = { "name", "address", "invoiceno", "paymentdate" };
        String uinfo[] = new String[ids.length];
        for (int i = 0; i < uinfo.length; i++) {
            uinfo[i] = jbj.getString(ids[i]);
        }
        PdfPTable tableinfo = new PdfPTable(1);
        PdfPTable table = new PdfPTable(2);
        Font font1 = FontFactory.getFont("Helvetica", 24, Font.BOLD, Color.BLACK);
        String cnxt = "";//StorageHandler.getProfileStorePath() + "/inceif-200.png";
        PdfPCell cell1 = null;
        try {
            Image img = Image.getInstance(cnxt);
            cell1 = new PdfPCell(img);
        } catch (Exception e) {
            cnxt = StorageHandler.GetProfileImgStorePath() + "/140-logo.png";
            Image img = Image.getInstance(cnxt);
            cell1 = new PdfPCell(img);
        }
        cell1.setBorder(0);
        cell1.setHorizontalAlignment(Element.ALIGN_RIGHT);
        tableinfo.addCell(cell1);
        tableinfo = addspace(1, tableinfo);
        tableinfo = addspace(4, tableinfo);
        cell1 = new PdfPCell(new Paragraph("INVOICE", font10));
        cell1.setBorder(0);
        cell1.setHorizontalAlignment(Element.ALIGN_RIGHT);
        tableinfo.addCell(cell1);
        tableinfo = addspace(2, tableinfo);
        table = addspace(1, table);
        //            cell1 = new PdfPCell(new Paragraph(uinfo[uinfo.length - 1],font9));
        //            cell1.setBorder(0);
        //            cell1.setHorizontalAlignment(Element.ALIGN_RIGHT);
        //            tableinfo.addCell(cell1);
        //            tableinfo = addspace(1, tableinfo);
        //            tableinfo = addspace(2, tableinfo);
        cell1 = new PdfPCell(tableinfo);
        cell1.setBorder(0);
        table.addCell(cell1);
        PdfPTable tb = new PdfPTable(1);
        document.add(new Paragraph("\u00a0"));
        tableinfo = addspace(1, tableinfo);

        Font font = FontFactory.getFont("Helvetica", 10, Font.BOLD, Color.BLACK);
        Font font2 = FontFactory.getFont("Helvetica", 10, Font.NORMAL, Color.BLACK);
        //Font font3 = FontFactory.getFont("Helvetica", 8, Font.ITALIC, Color.BLACK);
        Font font11 = FontFactory.getFont("Helvetica", 12, Font.BOLD, Color.BLACK);
        PdfPCell c1 = null;
        c1 = new PdfPCell(new Paragraph("Bill To :", font2));
        c1.setBorder(0);
        tb.addCell(c1);
        for (int i = 0; i < 2; i++) {
            PdfPCell c = null;
            if (i == 0)
                c = new PdfPCell(new Paragraph(uinfo[i], font11));
            else
                c = new PdfPCell(new Paragraph(uinfo[i]));
            //c.(20);
            c.setBorder(0);
            tb.addCell(c);
        }
        PdfPCell c = new PdfPCell(tb);
        c.setBorder(0);
        table.addCell(c);
        PdfPTable tb1 = new PdfPTable(1);
        for (int i = 2; i < 4; i++) {
            PdfPTable nested1 = new PdfPTable(3);
            c = new PdfPCell();
            c.setBorder(0);
            c.setPaddingRight(5);
            nested1.addCell(c);
            c = new PdfPCell(new Paragraph(invoiceheadings[i], font));
            c.setBorder(0);

            nested1.addCell(c);
            c = new PdfPCell(new Paragraph(uinfo[i], font2));
            c.setBorder(0);
            c.setHorizontalAlignment(Element.ALIGN_RIGHT);
            //c.setPaddingLeft(5);
            nested1.addCell(c);

            c = new PdfPCell(nested1);
            c.setBorder(0);
            tb1.addCell(c);
        }
        PdfPCell c2 = new PdfPCell(tb1);
        c2.setBorder(0);
        table.addCell(c2);
        PdfPTable tb2 = new PdfPTable(new float[] { 60, 40 });

        /*  for (int i = 6; i < 7; i++) {
        PdfPTable tb3 = new PdfPTable(2);//new float[]{20, 40});
        tb3.setWidths(new int[]{1, 3});
        c2 = new PdfPCell(new Paragraph(invoiceheadings[i], font));
        c2.setBorder(0);
        tb3.addCell(c2);
        c2 = new PdfPCell(new Paragraph(uinfo[i]));
        c2.setBorder(0);
        tb3.addCell(c2);
        c2 = new PdfPCell(tb3);
        c2.setBorder(0);
        c2.setHorizontalAlignment(Element.ALIGN_LEFT);
        tb2.addCell(c2);
        tb2 = addspace(1, tb2);
          }
        */
        PdfPTable maintable = new PdfPTable(1);
        c2 = new PdfPCell(table);
        c2.setBorder(0);
        maintable.addCell(c2);
        maintable = addspace(0, maintable);
        c2 = new PdfPCell(tb2);
        c2.setBorder(0);
        maintable.addCell(c2);
        document.add(maintable);
        //for (int i = 0; i < 2; i++) {
        document.add(new Paragraph("\u00a0"));
        //}
        String[] colwidth2 = { "Subscription date", "Description", "Rate ($/Project)", "Amount ($)" };

        PdfPTable table1 = new PdfPTable(4);
        table1.setWidths(new float[] { 2, 3, 1, 1 });
        for (int i = 0; i < colwidth2.length; i++) {
            PdfPCell cell = new PdfPCell(new Paragraph(colwidth2[i], font));
            cell.setBorder(0);
            if (i != 1) {
                cell.setBorderWidthLeft(1);
                cell.setBorderWidthRight(1);
            }
            if (i == 3) {
                cell.setBorderWidthLeft(0);
                cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
            } else {
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            }
            cell.setBorderWidthTop(1);
            cell.setBackgroundColor(Color.getHSBColor(0f, 0f, 0.9f));
            cell.setBorderWidthBottom(1);
            cell.setPaddingBottom(5);
            cell.setPaddingTop(5);
            table1.addCell(cell);
        }
        //table1.setHeaderRows(1);
        double d = 0;
        String[] di = { "billdate", "description", "rate", "amount" };
        java.text.DecimalFormat df = new java.text.DecimalFormat("0.00");
        for (int i = 0; i < gridinfo.length(); i++) {
            currency = "USD";//gridinfo.getJSONObject(i).getString("currency");
            PdfPCell cell = null;
            for (int j = 0; j < di.length; j++) {
                if (j == 3) {
                    cell = new PdfPCell(new Paragraph(
                            df.format(Double.parseDouble(gridinfo.getJSONObject(i).getString(di[j]))), font2));
                    cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
                } else {
                    cell = new PdfPCell(new Paragraph(gridinfo.getJSONObject(i).getString(di[j]), font2));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                }
                cell.setBorder(0);
                if (j != 1) {
                    cell.setBorderWidthLeft(1);
                    cell.setBorderWidthRight(1);
                }
                if (j == 3) {
                    cell.setBorder(0);
                    cell.setBorderWidthRight(1);
                }
                cell.setPaddingTop(10);
                cell.setFixedHeight(100);
                table1.addCell(cell);
            }
            d += Double.parseDouble(gridinfo.getJSONObject(i).getString(di[3]));

        }
        PdfPCell cell = null;
        cell = new PdfPCell(new Paragraph(" ", font));
        cell.setBorder(0);
        cell.setBorderWidthTop(1);
        cell.setBorderWidthBottom(1);
        cell.setBorderWidthLeft(1);
        cell.setBorderWidthRight(0);
        table1.addCell(cell);
        cell = new PdfPCell(new Paragraph("    ", font));
        cell.setBorder(0);
        cell.setBorderWidthTop(1);
        cell.setBorderWidthBottom(1);
        cell.setBorderWidthLeft(0);
        cell.setBorderWidthRight(0);
        table1.addCell(cell);
        cell = new PdfPCell(new Paragraph("     Total", font));
        cell.setBorder(0);
        cell.setBorderWidthTop(1);
        cell.setBorderWidthBottom(1);
        cell.setBorderWidthLeft(0);
        cell.setBorderWidthRight(0);
        cell.setPaddingBottom(5);
        table1.addCell(cell);
        cell = new PdfPCell(new Paragraph(" " + df.format(d), font));
        cell.setBorder(0);
        cell.setBorderWidthTop(1);
        cell.setBorderWidthBottom(1);
        cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
        cell.setBorderWidthLeft(0);
        cell.setBorderWidthRight(1);
        cell.setPaddingBottom(5);
        table1.addCell(cell);

        EnglishDecimalFormat f1 = new EnglishDecimalFormat();
        if (currency.equals("USD")) {
            cell = new PdfPCell(new Paragraph("Amount in words : " + CurrencyConvert(currency, d), font));
        } else {
            cell = new PdfPCell(new Paragraph(CurrencyConvert(currency, d), font));
        }
        cell.setColspan(4);
        cell.setBorder(0);
        //cell.setBorderWidthTop(1);
        cell.setBorderWidthBottom(1);
        cell.setHorizontalAlignment(Element.ALIGN_LEFT);
        cell.setBorderWidthLeft(1);
        cell.setBorderWidthRight(1);
        cell.setPaddingBottom(5);
        table1.addCell(cell);
        document.add(table1);
        document.add(new Paragraph("\u00a0"));
        PdfPTable inst = new PdfPTable(1);
        //            for (int i = 0; i < Inst1.length; i++) {
        //                c2 = new PdfPCell(new Paragraph(Inst1[i]));
        //                c2.setBorder(0);
        //                inst.addCell(c2);
        //            }
        document.add(inst);
        document.close();
        writer.close();
        os.close();

    }
    //        catch (ConfigurationException ex) {
    //            Logger.getLogger(PdfGenHandler.class.getName()).log(Level.SEVERE, null, ex);
    //        }
    catch (JSONException ex) {
        Logger.getLogger(PdfGenHandler.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        Logger.getLogger(PdfGenHandler.class.getName()).log(Level.SEVERE, null, ex);
    } catch (DocumentException ex) {
        Logger.getLogger(PdfGenHandler.class.getName()).log(Level.SEVERE, null, ex);
    } catch (Exception exp) {
        Logger.getLogger(PdfGenHandler.class.getName()).log(Level.SEVERE, null, exp);
    }
    return os;
}

From source file:com.krawler.esp.handlers.PdfGenHandler.java

License:Open Source License

public static ByteArrayOutputStream getReceiptAcc1(String ackrecp) {
    ByteArrayOutputStream os = null;
    try {//w  w w .j av  a2  s  .  c om
        os = new ByteArrayOutputStream();
        JSONObject jbj = new JSONObject(ackrecp);
        com.krawler.utils.json.base.JSONArray gridinfo = jbj.getJSONArray("items");
        String ginfo[] = new String[gridinfo.length() * 2];
        String ids[] = { "name", "receiptno", "paymentdate", "address" };
        String currency = "USD";
        //            String address = jbj.getString("address");
        String uinfo[] = new String[ids.length];
        for (int i = 0; i < uinfo.length; i++) {
            uinfo[i] = jbj.getString(ids[i]);
        }
        Font font = FontFactory.getFont("Helvetica", 10, Font.BOLD, Color.BLACK);
        Font font1 = FontFactory.getFont("Helvetica", 14, Font.BOLD, Color.BLACK);
        Font font3 = FontFactory.getFont("Helvetica", 12, Font.BOLD, Color.BLACK);
        //Font font4 = FontFactory.getFont("Helvetica", 12, Font.NORMAL, Color.BLACK);
        Font font7 = FontFactory.getFont("Helvetica", 8, Font.BOLD, Color.BLACK);
        Font font10 = FontFactory.getFont("Helvetica", 12, Font.BOLD, Color.BLACK);
        Font font11 = FontFactory.getFont("Helvetica", 12, Font.NORMAL, Color.BLACK);
        Font font12 = FontFactory.getFont("Helvetica", 10, Font.NORMAL, Color.BLACK);
        Document document1 = new Document(PageSize.A4, 15, 15, 15, 15);
        PdfWriter writer = PdfWriter.getInstance(document1, os);
        HeaderFooter temp = new HeaderFooter(new Phrase(
                String.format("Note: This is a computer generated document and does not require signature"),
                font7), false);
        temp.setAlignment(Element.ALIGN_CENTER);
        document1.setFooter(temp);
        document1.open();
        PdfPTable tableHinfo = new PdfPTable(1);
        PdfPTable table = new PdfPTable(1);
        font3.setStyle(Font.UNDERLINE);
        String cnxt = "";//StorageHandler.getProfileStorePath() + "/inceif-200.png";
        PdfPCell cell1 = null;
        try {
            Image img = Image.getInstance(cnxt);
            //                img.scalePercent(90);
            cell1 = new PdfPCell(img);
        } catch (Exception e) {
            cnxt = StorageHandler.GetProfileImgStorePath() + "/140-logo.png";
            Image img = Image.getInstance(cnxt);
            cell1 = new PdfPCell(img);
        }
        cell1.setBorder(0);
        cell1.setPaddingTop(18);
        cell1.setHorizontalAlignment(Element.ALIGN_RIGHT);
        tableHinfo.addCell(cell1);
        tableHinfo = addspace(1, tableHinfo);
        tableHinfo = addspace(4, tableHinfo);
        cell1 = new PdfPCell(new Paragraph("RECEIPT", font1));
        cell1.setBorder(0);
        cell1.setHorizontalAlignment(Element.ALIGN_RIGHT);
        tableHinfo.addCell(cell1);
        tableHinfo = addspace(0, tableHinfo);
        //            cell1 = new PdfPCell(new Paragraph(uinfo[4], font11));
        //            cell1.setBorder(0);
        //            cell1.setHorizontalAlignment(Element.ALIGN_RIGHT);
        //            tableHinfo.addCell(cell1);
        document1.add(tableHinfo);
        PdfPTable tableUinfo = new PdfPTable(1);

        cell1 = new PdfPCell(new Paragraph(receiptheading[0], font12));
        cell1.setBorder(0);
        cell1.setHorizontalAlignment(Element.ALIGN_LEFT);
        tableUinfo.addCell(cell1);
        cell1 = new PdfPCell(new Paragraph(uinfo[0], font10));
        cell1.setBorder(0);
        cell1.setHorizontalAlignment(Element.ALIGN_LEFT);
        tableUinfo.addCell(cell1);
        cell1 = new PdfPCell(new Paragraph(uinfo[3], font11));
        cell1.setBorder(0);
        cell1.setHorizontalAlignment(Element.ALIGN_LEFT);
        tableUinfo.addCell(cell1);

        document1.add(new Paragraph("\u00a0"));
        tableUinfo = addspace(1, tableUinfo);
        String hed[] = { "", "Receipt No : ", "Date : ", "" };

        PdfPTable tableDinfo = new PdfPTable(1);
        //tableDinfo.setTotalWidth(100);
        for (int j = 1; j < 3; j++) {
            PdfPTable nested1 = new PdfPTable(3);
            cell1 = new PdfPCell();
            cell1.setBorder(0);
            nested1.addCell(cell1);

            cell1 = new PdfPCell(new Paragraph(hed[j], font));
            cell1.setBorder(0);
            nested1.addCell(cell1);

            cell1 = new PdfPCell(new Paragraph(uinfo[j], font12));
            cell1.setBorder(0);
            cell1.setHorizontalAlignment(Element.ALIGN_RIGHT);
            nested1.addCell(cell1);

            cell1 = new PdfPCell(nested1);
            cell1.setBorder(0);
            tableDinfo.addCell(cell1);
        }
        PdfPTable container = new PdfPTable(2);
        cell1 = new PdfPCell(tableUinfo);
        cell1.setBorder(0);
        cell1.setPaddingBottom(15);
        container.addCell(cell1);
        cell1 = new PdfPCell(tableDinfo);
        cell1.setBorder(0);
        container.addCell(cell1);
        document1.add(container);
        PdfPTable table1 = new PdfPTable(2);
        String[] colwidth2 = { "Invoice No.", "Amount Paid($)" };
        for (int i = 0; i < colwidth2.length; i++) {
            PdfPCell cell = new PdfPCell(new Paragraph(colwidth2[i], font));
            if (i == 1) {
                cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
                cell.setBorderWidthLeft(0);
            } else {
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setBorderWidthLeft(1);
            }
            cell.setBackgroundColor(Color.getHSBColor(0f, 0f, 0.9f));
            cell.setPaddingBottom(5);
            cell.setBorderWidthRight(1);
            cell.setBorderWidthTop(1);
            table1.addCell(cell);
        }
        table1.setHeaderRows(1);
        double d = 0;
        colwidth2 = new String[] { "invoicenum", "amount" };
        java.text.DecimalFormat df = new java.text.DecimalFormat("0.00");
        for (int i = 0; i < gridinfo.length(); i++) {
            for (int j = 0; j < colwidth2.length; j++) {
                PdfPCell cell = null;
                if (j == 1) {
                    cell = new PdfPCell(new Paragraph(
                            df.format(Double.parseDouble(gridinfo.getJSONObject(i).getString(colwidth2[j]))),
                            font12));
                    cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
                    cell.setBorderWidthLeft(0);
                } else {
                    cell = new PdfPCell(
                            new Paragraph(gridinfo.getJSONObject(i).getString(colwidth2[j]), font12));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    cell.setBorderWidthLeft(1);
                }
                //cell.setMinimumHeight(25);
                cell.setBorderWidthRight(1);
                cell.setPaddingTop(5);
                cell.setFixedHeight(100);
                table1.addCell(cell);
                if (j == colwidth2.length - 1) {
                    d += Double.parseDouble(gridinfo.getJSONObject(i).getString(colwidth2[j]));
                }
            }
        }
        //            EnglishDecimalFormat f1 = new EnglishDecimalFormat();
        PdfPCell cell = new PdfPCell(new Paragraph("", font));
        cell.setBorderWidthBottom(1);
        cell.setBorderWidthRight(0);
        cell.setBorderWidthLeft(1);
        cell.setHorizontalAlignment(Element.ALIGN_LEFT);
        table1.addCell(cell);
        cell = new PdfPCell(new Paragraph("Total              " + df.format(d), font));
        cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
        //cell.setPaddingBottom(15);
        cell.setPaddingLeft(15);
        cell.setPaddingBottom(5);
        cell.setBorderWidthBottom(1);
        cell.setBorderWidthLeft(0);
        cell.setBorderWidthRight(1);
        table1.addCell(cell);
        PdfPTable table3 = new PdfPTable(1);
        cell = new PdfPCell(new Paragraph("Amount in words : " + CurrencyConvert(currency, d), font));
        //cell.setPaddingBottom(15);
        cell.setBorder(0);
        cell.setColspan(4);
        cell.setBorderWidthBottom(1);
        cell.setHorizontalAlignment(Element.ALIGN_LEFT);
        cell.setBorderWidthLeft(1);
        cell.setBorderWidthRight(1);
        cell.setPaddingBottom(5);
        table3.addCell(cell);
        document1.add(table1);
        document1.add(table3);
        document1.add(new Paragraph("\u00a0"));

        cell = new PdfPCell(new Paragraph(String.format(
                "All payments are non-refundable and non-transferable. \nThis Receipt is valid subject to clearance of the payments."),
                font11));
        //cell.setPaddingLeft(5);
        cell.setBorder(0);
        table.addCell(cell);

        //            String delFlag = jbj.getString("delflag");
        //            if(delFlag.compareTo("2")==0){
        //                BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.EMBEDDED);
        //                PdfContentByte cb = writer.getDirectContentUnder();
        //                cb.saveState();
        //                cb.setColorFill(Color.BLACK);
        //                cb.beginText();
        //                cb.setFontAndSize(bf, 48);
        //                cb.showTextAligned(Element.ALIGN_CENTER, "Canceled Payment", document1.getPageSize().getWidth() / 2, document1.getPageSize().getHeight() / 2, 45);
        //                cb.endText();
        //                cb.restoreState();
        //            }   

        document1.add(table);
        document1.close();
        writer.close();
        os.close();
    } catch (Exception e) {
        System.out.println(e);
    }
    return os;
}

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

License:Open Source License

public static void setHeaderFooter(Document doc, String headerText) {
    HeaderFooter footer = new HeaderFooter(
            new Phrase(" ", FontFactory.getFont("Helvetica", 8, Font.NORMAL, Color.BLACK)), true);
    footer.setBorderWidth(0);//from ww  w.  j  a va2  s . com
    footer.setBorderWidthTop(1);
    footer.setAlignment(HeaderFooter.ALIGN_RIGHT);
    doc.setFooter(footer);
    HeaderFooter header = new HeaderFooter(
            new Phrase(headerText, FontFactory.getFont("Helvetica", 14, Font.BOLD, Color.BLACK)), false);
    doc.setHeader(header);
}

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

License:Open Source License

public void getHeaderFooter(Document document) throws JSONException {
    java.awt.Color tColor = new Color(Integer.parseInt(config.getString("textColor"), 16));
    fontSmallRegular.setColor(tColor);//from  w  ww.  j  a v a 2  s . c o  m

    java.util.Date dt = new java.util.Date();
    String dformat = "yyyy-MM-d";
    java.text.SimpleDateFormat dtf = new java.text.SimpleDateFormat(dformat);
    String DateStr = dtf.format(dt);

    // -------- header ----------------
    header = new PdfPTable(3);
    String HeadDate = "";
    if (config.getBoolean("headDate"))
        HeadDate = DateStr;
    PdfPCell headerDateCell = new PdfPCell(new Phrase(HeadDate, fontSmallRegular));
    headerDateCell.setBorder(0);
    headerDateCell.setPaddingBottom(4);
    header.addCell(headerDateCell);

    PdfPCell headerNotecell = new PdfPCell(new Phrase(config.getString("headNote"), fontSmallRegular));
    headerNotecell.setBorder(0);
    headerNotecell.setPaddingBottom(4);
    headerNotecell.setHorizontalAlignment(PdfCell.ALIGN_CENTER);
    header.addCell(headerNotecell);

    String HeadPager = "";
    if (config.getBoolean("headPager"))
        HeadPager = String.valueOf(document.getPageNumber());//current page no
    PdfPCell headerPageNocell = new PdfPCell(new Phrase(HeadPager, fontSmallRegular));
    headerPageNocell.setBorder(0);
    headerPageNocell.setPaddingBottom(4);
    headerPageNocell.setHorizontalAlignment(PdfCell.ALIGN_RIGHT);
    header.addCell(headerPageNocell);

    PdfPCell headerSeparator = new PdfPCell(new Phrase(""));
    headerSeparator.setBorder(PdfPCell.BOX);
    headerSeparator.setPadding(0);
    headerSeparator.setColspan(3);
    header.addCell(headerSeparator);
    // -------- header end ----------------

    // -------- footer  -------------------
    footer = new PdfPTable(3);
    PdfPCell footerSeparator = new PdfPCell(new Phrase(""));
    footerSeparator.setBorder(PdfPCell.BOX);
    footerSeparator.setPadding(0);
    footerSeparator.setColspan(3);
    footer.addCell(footerSeparator);

    String PageDate = "";
    if (config.getBoolean("footDate"))
        PageDate = DateStr;
    PdfPCell pagerDateCell = new PdfPCell(new Phrase(PageDate, fontSmallRegular));
    pagerDateCell.setBorder(0);
    footer.addCell(pagerDateCell);

    PdfPCell footerNotecell = new PdfPCell(new Phrase(config.getString("footNote"), fontSmallRegular));
    footerNotecell.setBorder(0);
    footerNotecell.setHorizontalAlignment(PdfCell.ALIGN_CENTER);
    footer.addCell(footerNotecell);

    String FootPager = "";
    if (config.getBoolean("footPager"))
        FootPager = String.valueOf(document.getPageNumber());//current page no
    PdfPCell footerPageNocell = new PdfPCell(new Phrase(FootPager, fontSmallRegular));
    footerPageNocell.setBorder(0);
    footerPageNocell.setHorizontalAlignment(PdfCell.ALIGN_RIGHT);
    footer.addCell(footerPageNocell);
    // -------- footer end   -----------
}

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

License:Open Source License

public void getHeaderFooter(Document document) throws JSONException {
    java.awt.Color tColor = new Color(0, 0, 0);
    fontSmallRegular.setColor(tColor);/*www  . ja v a  2s. c o  m*/

    java.util.Date dt = new java.util.Date();
    String dformat = "yyyy-MM-d";
    java.text.SimpleDateFormat dtf = new java.text.SimpleDateFormat(dformat);
    String DateStr = dtf.format(dt);

    // -------- header ----------------

    header = new PdfPTable(1);
    PdfPCell headerNotecell = new PdfPCell(new Phrase("Project Summary Report", fontSmallRegular));
    headerNotecell.setBorder(0);
    headerNotecell.setPaddingBottom(4);
    headerNotecell.setHorizontalAlignment(PdfCell.ALIGN_CENTER);
    header.addCell(headerNotecell);

    PdfPCell headerSeparator = new PdfPCell(new Phrase(""));
    headerSeparator.setBorder(PdfPCell.BOX);
    headerSeparator.setPadding(0);
    headerSeparator.setColspan(1);
    header.addCell(headerSeparator);
    // -------- header end ----------------

    // -------- footer  -------------------
    footer = new PdfPTable(3);
    PdfPCell footerSeparator = new PdfPCell(new Phrase(""));
    footerSeparator.setBorder(PdfPCell.BOX);
    footerSeparator.setPadding(0);
    footerSeparator.setColspan(3);
    footer.addCell(footerSeparator);

    PdfPCell emptyCell = new PdfPCell(new Phrase("", fontSmallRegular));
    emptyCell.setBorder(0);
    emptyCell.setColspan(1);
    emptyCell.setHorizontalAlignment(PdfCell.ALIGN_LEFT);
    footer.addCell(emptyCell);

    PdfPCell footerNotecell = new PdfPCell(new Phrase("Project Summary Report", fontSmallRegular));
    footerNotecell.setBorder(0);
    footerNotecell.setColspan(1);
    footerNotecell.setHorizontalAlignment(PdfCell.ALIGN_CENTER);
    footer.addCell(footerNotecell);

    PdfPCell pagerDateCell = new PdfPCell(new Phrase(DateStr, fontSmallRegular));
    pagerDateCell.setBorder(0);
    pagerDateCell.setColspan(1);
    pagerDateCell.setHorizontalAlignment(PdfPCell.ALIGN_RIGHT);
    footer.addCell(pagerDateCell);

    // -------- footer end   -----------
}

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

License:Open Source License

public static HeaderFooter addFooter() {
    HeaderFooter hf = new HeaderFooter(new Phrase("Page ", fontSmallRegular),
            new Phrase(" of " + pages, fontSmallRegular));
    hf.setBorderWidth(0);//from w w  w .java  2s .co  m
    hf.setBorderWidthTop(1);
    hf.setAlignment(Element.ALIGN_RIGHT);
    return hf;
}

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

License:Open Source License

public void getHeaderFooter(Document document) throws JSONException {
    java.awt.Color tColor = new Color(Integer.parseInt(config.getString("textColor"), 16));
    fontSmallRegular.setColor(tColor);//from w w  w .  j  a  va  2  s.  c  o m
    java.util.Date dt = new java.util.Date();
    String date = "yyyy-MM-dd";
    java.text.SimpleDateFormat dtf = new java.text.SimpleDateFormat(date);
    String DateStr = dtf.format(dt);

    // -------- header ----------------
    header = new PdfPTable(3);
    String HeadDate = "";
    if (config.getBoolean("headDate"))
        HeadDate = DateStr;
    PdfPCell headerDateCell = new PdfPCell(new Phrase(HeadDate, fontSmallRegular));
    headerDateCell.setBorder(0);
    headerDateCell.setPaddingBottom(4);
    header.addCell(headerDateCell);

    PdfPCell headerNotecell = new PdfPCell(new Phrase(config.getString("headNote"), fontSmallRegular));
    headerNotecell.setBorder(0);
    headerNotecell.setPaddingBottom(4);
    headerNotecell.setHorizontalAlignment(PdfCell.ALIGN_CENTER);
    header.addCell(headerNotecell);

    String HeadPager = "";
    if (config.getBoolean("headPager"))
        HeadPager = String.valueOf(document.getPageNumber());//current page no
    PdfPCell headerPageNocell = new PdfPCell(new Phrase(HeadPager, fontSmallRegular));
    headerPageNocell.setBorder(0);
    headerPageNocell.setPaddingBottom(4);
    headerPageNocell.setHorizontalAlignment(PdfCell.ALIGN_RIGHT);
    header.addCell(headerPageNocell);

    PdfPCell headerSeparator = new PdfPCell(new Phrase(""));
    headerSeparator.setBorder(PdfPCell.BOX);
    headerSeparator.setPadding(0);
    headerSeparator.setColspan(3);
    header.addCell(headerSeparator);
    // -------- header end ----------------

    // -------- footer  -------------------
    footer = new PdfPTable(3);
    PdfPCell footerSeparator = new PdfPCell(new Phrase(""));
    footerSeparator.setBorder(PdfPCell.BOX);
    footerSeparator.setPadding(0);
    footerSeparator.setColspan(3);
    footer.addCell(footerSeparator);

    String PageDate = "";
    if (config.getBoolean("footDate"))
        PageDate = DateStr;
    PdfPCell pagerDateCell = new PdfPCell(new Phrase(PageDate, fontSmallRegular));
    pagerDateCell.setBorder(0);
    footer.addCell(pagerDateCell);

    PdfPCell footerNotecell = new PdfPCell(new Phrase(config.getString("footNote"), fontSmallRegular));
    footerNotecell.setBorder(0);
    footerNotecell.setHorizontalAlignment(PdfCell.ALIGN_CENTER);
    footer.addCell(footerNotecell);

    String FootPager = "";
    if (config.getBoolean("footPager"))
        FootPager = String.valueOf(document.getPageNumber());//current page no
    PdfPCell footerPageNocell = new PdfPCell(new Phrase(FootPager, fontSmallRegular));
    footerPageNocell.setBorder(0);
    footerPageNocell.setHorizontalAlignment(PdfCell.ALIGN_RIGHT);
    footer.addCell(footerPageNocell);
    // -------- footer end   -----------
}

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

License:Open Source License

public static void setHeaderFooter(Document doc, String headerText) {
    HeaderFooter footer = new HeaderFooter(
            new Phrase("  ", FontFactory.getFont("Helvetica", 8, Font.NORMAL, Color.BLACK)), true);
    footer.setBorderWidth(0);/*from   w  w  w . ja v a2s . c om*/
    footer.setBorderWidthTop(1);
    footer.setAlignment(HeaderFooter.ALIGN_RIGHT);
    doc.setFooter(footer);
    HeaderFooter header = new HeaderFooter(
            new Phrase(headerText, FontFactory.getFont("Helvetica", 14, Font.BOLD, Color.BLACK)), false);
    doc.setHeader(header);
}

From source file:com.krawler.spring.exportFuctionality.ExportRecord.java

License:Open Source License

public ByteArrayOutputStream createPdf(HttpServletRequest request, String currencyid, String billid,
        DateFormat formatter, int mode, double amount, String logoPath, String customer, String accname,
        String address, boolean isExpenseInv) throws DocumentException, ServiceException, IOException {
    ByteArrayOutputStream baos = null;
    double total = 0;
    Document document = null;/*from  ww w . jav a  2s.c  o m*/
    PdfWriter writer = null;
    try {
        String poRefno = "";
        baos = new ByteArrayOutputStream();
        document = new Document(PageSize.A4, 15, 15, 15, 15);
        writer = PdfWriter.getInstance(document, baos);
        document.open();
        PdfPTable mainTable = new PdfPTable(1);
        mainTable.setWidthPercentage(100);

        PdfPTable blankTable = null;
        PdfPCell blankCell = null;
        PdfPTable tab1 = null;
        PdfPTable tab2 = null;
        PdfPTable tab3 = null;
        Rectangle page = document.getPageSize();

        int bmargin = 15; //border margin
        PdfContentByte cb = writer.getDirectContent();
        cb.rectangle(bmargin, bmargin, page.getWidth() - bmargin * 2, page.getHeight() - bmargin * 2);
        cb.setColorStroke(Color.WHITE);
        cb.stroke();

        if (mode == StaticValues.AUTONUM_INVOICE || mode == StaticValues.AUTONUM_BILLINGINVOICE
                || mode == StaticValues.AUTONUM_BILLINGSALESORDER
                || mode == StaticValues.AUTONUM_BILLINGPURCHASEORDER || mode == StaticValues.AUTONUM_SALESORDER
                || mode == StaticValues.AUTONUM_PURCHASEORDER || mode == StaticValues.AUTONUM_QUOTATION) {
            addHeaderFooter(document, writer);
            Invoice inv = null;
            BillingInvoice inv1 = null;
            BillingSalesOrder so = null;
            Company com = null;
            Account cEntry;
            String invno = "";
            Date entryDate = null;
            BillingPurchaseOrder po = null;
            SalesOrder sOrder = null;
            PurchaseOrder pOrder = null;
            Tax mainTax = null;
            Quotation quotation = null;
            if (mode == StaticValues.AUTONUM_INVOICE) {
                KwlReturnObject cap = kwlCommonTablesDAOObj.getObject(Invoice.class.getName(), billid);
                inv = (Invoice) cap.getEntityList().get(0);
                com = inv.getCompany();
                cEntry = inv.getCustomerEntry().getAccount();
                invno = inv.getInvoiceNumber();
                entryDate = inv.getJournalEntry().getEntryDate();
                //inv = (Invoice) session.get(Invoice.class, billid);
            } else if (mode == StaticValues.AUTONUM_BILLINGSALESORDER) {
                so = (BillingSalesOrder) kwlCommonTablesDAOObj.getClassObject(BillingSalesOrder.class.getName(),
                        billid);
                com = so.getCompany();
                cEntry = so.getCustomer().getAccount();
                invno = so.getSalesOrderNumber();
                entryDate = so.getOrderDate();
                mainTax = so.getTax();
            } else if (mode == StaticValues.AUTONUM_BILLINGPURCHASEORDER) {
                po = (BillingPurchaseOrder) kwlCommonTablesDAOObj
                        .getClassObject(BillingPurchaseOrder.class.getName(), billid);
                com = po.getCompany();
                cEntry = po.getVendor().getAccount();
                invno = po.getPurchaseOrderNumber();
                entryDate = po.getOrderDate();
                mainTax = po.getTax();
            } else if (mode == StaticValues.AUTONUM_SALESORDER) {
                sOrder = (SalesOrder) kwlCommonTablesDAOObj.getClassObject(SalesOrder.class.getName(), billid);
                com = sOrder.getCompany();
                cEntry = sOrder.getCustomer().getAccount();
                invno = sOrder.getSalesOrderNumber();
                entryDate = sOrder.getOrderDate();
                mainTax = sOrder.getTax();

            } else if (mode == StaticValues.AUTONUM_PURCHASEORDER) {
                pOrder = (PurchaseOrder) kwlCommonTablesDAOObj.getClassObject(PurchaseOrder.class.getName(),
                        billid);
                com = pOrder.getCompany();
                cEntry = pOrder.getVendor().getAccount();
                invno = pOrder.getPurchaseOrderNumber();
                entryDate = pOrder.getOrderDate();
                mainTax = pOrder.getTax();

            } else if (mode == StaticValues.AUTONUM_QUOTATION) {
                quotation = (Quotation) kwlCommonTablesDAOObj.getClassObject(Quotation.class.getName(), billid);
                com = quotation.getCompany();
                cEntry = quotation.getCustomer().getAccount();
                invno = quotation.getquotationNumber();
                entryDate = quotation.getQuotationDate();
                mainTax = quotation.getTax();

            } else {
                KwlReturnObject cap = kwlCommonTablesDAOObj.getObject(BillingInvoice.class.getName(), billid);
                inv1 = (BillingInvoice) cap.getEntityList().get(0);
                com = inv1.getCompany();
                cEntry = inv1.getCustomerEntry().getAccount();
                invno = inv1.getBillingInvoiceNumber();
                entryDate = inv1.getJournalEntry().getEntryDate();
                poRefno = inv1.getPoRefNumber() == null ? "" : inv1.getPoRefNumber();
                mainTax = inv1.getTax();
                //inv1=(BillingInvoice)session.get(BillingInvoice.class,billid);
            }

            //                Company com = mode != StaticValues.AUTONUM_BILLINGINVOICE ? inv.getCompany() : inv1.getCompany();
            String company[] = new String[4];
            company[0] = com.getCompanyName();
            company[1] = com.getAddress();
            company[2] = com.getEmailID();
            company[3] = com.getPhoneNumber();

            PdfPTable table1 = new PdfPTable(2);
            table1.setWidthPercentage(100);
            table1.setWidths(new float[] { 50, 50 });

            tab1 = addCompanyLogo(logoPath, com);
            tab2 = new PdfPTable(1);
            PdfPCell invCell = null;

            CompanyAccountPreferences pref = (CompanyAccountPreferences) kwlCommonTablesDAOObj
                    .getClassObject(CompanyAccountPreferences.class.getName(), com.getCompanyID());
            Account cash = pref.getCashAccount();
            //
            //                if (mode != StaticValues.AUTONUM_BILLINGINVOICE) {
            //                    cEntry = inv.getCustomerEntry().getAccount();
            //                } else {
            //                    cEntry = inv1.getCustomerEntry().getAccount();
            //                }
            String theader = cEntry == cash
                    ? messageSource.getMessage("acc.accPref.autoCS", null,
                            RequestContextUtils.getLocale(request))
                    : messageSource.getMessage("acc.accPref.autoInvoice", null,
                            RequestContextUtils.getLocale(request));
            if (mode == StaticValues.AUTONUM_BILLINGSALESORDER || mode == StaticValues.AUTONUM_SALESORDER) {
                theader = messageSource.getMessage("acc.accPref.autoSO", null,
                        RequestContextUtils.getLocale(request));
            } else if (mode == StaticValues.AUTONUM_BILLINGPURCHASEORDER
                    || mode == StaticValues.AUTONUM_PURCHASEORDER) {
                theader = messageSource.getMessage("acc.accPref.autoPO", null,
                        RequestContextUtils.getLocale(request));
            } else if (mode == StaticValues.AUTONUM_QUOTATION) {
                theader = messageSource.getMessage("acc.accPref.autoQN", null,
                        RequestContextUtils.getLocale(request));
            }
            invCell = createCell(theader, fontTbl, Element.ALIGN_RIGHT, 0, 5);
            tab2.addCell(invCell);

            PdfPCell cell1 = new PdfPCell(tab1);
            cell1.setBorder(0);
            table1.addCell(cell1);
            PdfPCell cel2 = new PdfPCell(tab2);
            cel2.setBorder(0);
            table1.addCell(cel2);

            PdfPCell mainCell11 = new PdfPCell(table1);
            mainCell11.setBorder(0);
            mainCell11.setPadding(10);
            mainTable.addCell(mainCell11);

            PdfPTable userTable2 = new PdfPTable(2);
            userTable2.setWidthPercentage(100);
            userTable2.setWidths(new float[] { 60, 40 });

            tab3 = getCompanyInfo(company);

            PdfPTable tab4 = new PdfPTable(2);
            tab4.setWidthPercentage(100);
            tab4.setWidths(new float[] { 50, 50 });

            PdfPCell cell2 = createCell(theader + "# :", fontSmallBold, Element.ALIGN_RIGHT, 0, 5);
            if (mode == StaticValues.AUTONUM_QUOTATION) {
                cell2 = createCell(theader + "# :", fontSmallBold, Element.ALIGN_RIGHT, 0, 5);
            }
            tab4.addCell(cell2);
            //                String invno = mode != StaticValues.AUTONUM_BILLINGINVOICE ? inv.getInvoiceNumber() : inv1.getBillingInvoiceNumber();
            cell2 = createCell(invno, fontSmallRegular, Element.ALIGN_LEFT, 0, 5);
            tab4.addCell(cell2);
            if (mode != StaticValues.AUTONUM_QUOTATION && mode != StaticValues.AUTONUM_PURCHASEORDER
                    && mode != StaticValues.AUTONUM_SALESORDER) {
                cell2 = createCell(
                        messageSource.getMessage("acc.numb.43", null, RequestContextUtils.getLocale(request))
                                + " # :",
                        fontSmallBold, Element.ALIGN_RIGHT, 0, 5);
                tab4.addCell(cell2);
                cell2 = createCell(poRefno, fontSmallRegular, Element.ALIGN_LEFT, 0, 5);
                tab4.addCell(cell2);
            }

            cell2 = createCell(
                    messageSource.getMessage("acc.rem.198", null, RequestContextUtils.getLocale(request))
                            + " :",
                    fontSmallBold, Element.ALIGN_RIGHT, 0, 5);
            tab4.addCell(cell2);
            cell2 = createCell(formatter.format(entryDate), fontSmallRegular, Element.ALIGN_LEFT, 0, 5);
            tab4.addCell(cell2);

            cell1 = new PdfPCell(tab3);
            cell1.setBorder(0);
            userTable2.addCell(cell1);
            cel2 = new PdfPCell(tab4);
            cel2.setBorder(0);
            userTable2.addCell(cel2);

            PdfPCell mainCell12 = new PdfPCell(userTable2);
            mainCell12.setBorder(0);
            mainCell12.setPadding(10);
            mainTable.addCell(mainCell12);

            PdfPTable tab5 = new PdfPTable(2);
            tab5.setWidthPercentage(100);
            tab5.setWidths(new float[] { 10, 90 });
            PdfPCell cell3 = createCell(
                    messageSource.getMessage("acc.common.to", null, RequestContextUtils.getLocale(request))
                            + " , ",
                    fontSmallBold, Element.ALIGN_LEFT, 0, 5);
            tab5.addCell(cell3);
            cell3 = createCell("", fontSmallBold, Element.ALIGN_LEFT, 0, 0);
            tab5.addCell(cell3);
            cell3 = createCell("", fontSmallBold, Element.ALIGN_LEFT, 0, 0);
            tab5.addCell(cell3);

            HashMap<String, Object> invRequestParams = new HashMap<String, Object>();
            ArrayList filter_names = new ArrayList(), filter_params = new ArrayList(),
                    order_by = new ArrayList(), order_type = new ArrayList();
            order_by.add("srno");
            order_type.add("asc");
            invRequestParams.put("order_by", order_by);
            invRequestParams.put("order_type", order_type);
            KwlReturnObject idresult = null;

            String customerName = "";
            String shipTo = "";
            String memo = "";
            Iterator itr = null;
            if (mode == StaticValues.AUTONUM_INVOICE) {
                filter_names.add("invoice.ID");
                filter_params.add(inv.getID());
                invRequestParams.put("filter_names", filter_names);
                invRequestParams.put("filter_params", filter_params);
                idresult = accInvoiceDAOobj.getInvoiceDetails(invRequestParams);
                customerName = inv.getCustomer() == null ? inv.getCustomerEntry().getAccount().getName()
                        : inv.getCustomer().getName();
                shipTo = inv.getShipTo();
                itr = idresult.getEntityList().iterator();
                memo = inv.getMemo();
            } else if (mode == StaticValues.AUTONUM_BILLINGSALESORDER) {
                customerName = so.getCustomer().getName();
                shipTo = so.getCustomer().getShippingAddress();
                filter_names.add("salesOrder.ID");
                filter_params.add(so.getID());
                invRequestParams.put("filter_names", filter_names);
                invRequestParams.put("filter_params", filter_params);
                idresult = accSalesOrderDAOobj.getBillingSalesOrderDetails(invRequestParams);
                itr = idresult.getEntityList().iterator();
                memo = so.getMemo();
            } else if (mode == StaticValues.AUTONUM_BILLINGPURCHASEORDER) {
                customerName = po.getVendor().getName();
                shipTo = po.getVendor().getAddress();
                filter_names.add("purchaseOrder.ID");
                filter_params.add(po.getID());
                invRequestParams.put("filter_names", filter_names);
                invRequestParams.put("filter_params", filter_params);
                idresult = accPurchaseOrderobj.getBillingPurchaseOrderDetails(invRequestParams);
                itr = idresult.getEntityList().iterator();
                memo = po.getMemo();
            } else if (mode == StaticValues.AUTONUM_SALESORDER) {
                customerName = sOrder.getCustomer().getName();
                shipTo = sOrder.getCustomer().getShippingAddress();
                filter_names.add("salesOrder.ID");
                filter_params.add(sOrder.getID());
                invRequestParams.put("filter_names", filter_names);
                invRequestParams.put("filter_params", filter_params);
                idresult = accSalesOrderDAOobj.getSalesOrderDetails(invRequestParams);
                itr = idresult.getEntityList().iterator();
                memo = sOrder.getMemo();
            } else if (mode == StaticValues.AUTONUM_PURCHASEORDER) {
                customerName = pOrder.getVendor().getName();
                shipTo = pOrder.getVendor().getAddress();
                filter_names.add("purchaseOrder.ID");
                filter_params.add(pOrder.getID());
                invRequestParams.put("filter_names", filter_names);
                invRequestParams.put("filter_params", filter_params);
                idresult = accPurchaseOrderobj.getPurchaseOrderDetails(invRequestParams);
                itr = idresult.getEntityList().iterator();
                memo = pOrder.getMemo();
            } else if (mode == StaticValues.AUTONUM_QUOTATION) {
                customerName = quotation.getCustomer().getName();
                shipTo = quotation.getCustomer().getShippingAddress();
                filter_names.add("quotation.ID");
                filter_params.add(quotation.getID());
                invRequestParams.put("filter_names", filter_names);
                invRequestParams.put("filter_params", filter_params);
                idresult = accSalesOrderDAOobj.getQuotationDetails(invRequestParams);
                itr = idresult.getEntityList().iterator();
                memo = quotation.getMemo();
            } else {
                filter_names.add("billingInvoice.ID");
                filter_params.add(inv1.getID());
                invRequestParams.put("filter_names", filter_names);
                invRequestParams.put("filter_params", filter_params);
                idresult = accInvoiceDAOobj.getBillingInvoiceDetails(invRequestParams);
                customerName = inv1.getCustomer() == null ? inv1.getCustomerEntry().getAccount().getName()
                        : inv1.getCustomer().getName();
                shipTo = inv1.getShipTo();
                itr = idresult.getEntityList().iterator();
                memo = inv1.getMemo();
            }
            cell3 = createCell(customerName, fontSmallRegular, Element.ALIGN_LEFT, 0, 5);
            tab5.addCell(cell3);
            cell3 = createCell("", fontSmallBold, Element.ALIGN_LEFT, 0, 0);
            tab5.addCell(cell3);
            cell3 = createCell(shipTo, fontSmallRegular, Element.ALIGN_LEFT, 0, 5);
            tab5.addCell(cell3);

            PdfPCell mainCell14 = new PdfPCell(tab5);
            mainCell14.setBorder(0);
            mainCell14.setPadding(10);
            mainTable.addCell(mainCell14);

            //                if(mode == StaticValues.AUTONUM_QUOTATION)
            //                   String[] header = {"S.No.","PRODUCT DESCRIPTION", "QUANTITY", "UNIT PRICE", "TAX", "AMOUNT"};

            String[] header = {
                    messageSource.getMessage("acc.setupWizard.sno", null,
                            RequestContextUtils.getLocale(request)),
                    messageSource.getMessage("acc.rem.176", null, RequestContextUtils.getLocale(request)),
                    messageSource.getMessage("acc.rem.187", null, RequestContextUtils.getLocale(request)),
                    messageSource.getMessage("acc.rem.188", null, RequestContextUtils.getLocale(request)),
                    messageSource.getMessage("acc.rem.191", null, RequestContextUtils.getLocale(request)),
                    messageSource.getMessage("acc.rem.192", null, RequestContextUtils.getLocale(request)),
                    messageSource.getMessage("acc.rem.193", null, RequestContextUtils.getLocale(request)) };
            PdfPTable table = getBlankTable();
            PdfPCell invcell = null;
            for (int i = 0; i < header.length; i++) {
                invcell = new PdfPCell(new Paragraph(header[i], fontSmallBold));
                invcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                invcell.setBackgroundColor(Color.LIGHT_GRAY);
                invCell.setBorder(0);
                invcell.setPadding(3);
                table.addCell(invcell);
            }

            addTableRow(mainTable, table); //Break table after adding header row
            table = getBlankTable();

            HashMap<String, Object> requestParams = AccountingManager.getGlobalParams(request);
            KwlReturnObject bAmt = null;
            InvoiceDetail row = null;
            BillingInvoiceDetail row1 = null;
            BillingSalesOrderDetail row3 = null;
            BillingPurchaseOrderDetail row4 = null;
            SalesOrderDetail row5 = null;
            PurchaseOrderDetail row6 = null;
            QuotationDetail row7 = null;
            int index = 0;
            while (itr.hasNext()) {
                String prodName = "";
                double quantity = 0, discountQuotation = 0;
                double rate = 0;
                Discount discount = null;
                String uom = "";
                double amount1 = 0;
                if (mode == StaticValues.AUTONUM_INVOICE) {
                    row = (InvoiceDetail) itr.next();
                    prodName = row.getInventory().getProduct().getName();
                    quantity = row.getInventory().getQuantity();
                    rate = row.getRate();
                    discount = row.getDiscount();
                    uom = row.getInventory().getProduct().getUnitOfMeasure() == null ? ""
                            : row.getInventory().getProduct().getUnitOfMeasure().getName();
                } else if (mode == StaticValues.AUTONUM_BILLINGSALESORDER) {
                    row3 = (BillingSalesOrderDetail) itr.next();
                    prodName = row3.getProductDetail();
                    quantity = row3.getQuantity();
                    rate = row3.getRate();
                } else if (mode == StaticValues.AUTONUM_BILLINGPURCHASEORDER) {
                    row4 = (BillingPurchaseOrderDetail) itr.next();
                    prodName = row4.getProductDetail();
                    quantity = row4.getQuantity();
                    rate = row4.getRate();
                } else if (mode == StaticValues.AUTONUM_SALESORDER) {
                    row5 = (SalesOrderDetail) itr.next();
                    prodName = row5.getProduct().getName();
                    quantity = row5.getQuantity();
                    rate = row5.getRate();
                    uom = row5.getProduct().getUnitOfMeasure() == null ? ""
                            : row5.getProduct().getUnitOfMeasure().getName();
                } else if (mode == StaticValues.AUTONUM_PURCHASEORDER) {
                    row6 = (PurchaseOrderDetail) itr.next();
                    prodName = row6.getProduct().getName();
                    quantity = row6.getQuantity();
                    rate = row6.getRate();
                    uom = row6.getProduct().getUnitOfMeasure() == null ? ""
                            : row6.getProduct().getUnitOfMeasure().getName();
                } else if (mode == StaticValues.AUTONUM_QUOTATION) {
                    row7 = (QuotationDetail) itr.next();
                    prodName = row7.getProduct().getName();
                    quantity = row7.getQuantity();
                    rate = row7.getRate();
                    discountQuotation = rate * quantity * row7.getDiscount() / 100;
                    uom = row7.getProduct().getUnitOfMeasure() == null ? ""
                            : row7.getProduct().getUnitOfMeasure().getName();
                } else {
                    row1 = (BillingInvoiceDetail) itr.next();
                    prodName = row1.getProductDetail();
                    quantity = row1.getQuantity();
                    rate = row1.getRate();
                    discount = row1.getDiscount() != null ? row1.getDiscount() : null;
                    //                        uom = row1.getInventory().getProduct().getUnitOfMeasure()==null?"":row1.getInventory().getProduct().getUnitOfMeasure().getName();
                }
                invcell = createCell((++index) + ".", fontSmallRegular, Element.ALIGN_RIGHT,
                        Rectangle.LEFT + Rectangle.RIGHT, 5);
                table.addCell(invcell);
                invcell = createCell(prodName, fontSmallRegular, Element.ALIGN_LEFT,
                        Rectangle.LEFT + Rectangle.RIGHT, 5);
                table.addCell(invcell);

                String qtyStr = Double.toString(quantity);
                if (mode == StaticValues.AUTONUM_INVOICE || mode == StaticValues.AUTONUM_SALESORDER
                        || mode == StaticValues.AUTONUM_PURCHASEORDER
                        || mode == StaticValues.AUTONUM_QUOTATION) {
                    qtyStr = Integer.toString((int) quantity); //For with-Inventory flow, Don't show decimal point as inventory has integer value
                }
                invcell = createCell(qtyStr + " " + uom, fontSmallRegular, Element.ALIGN_CENTER,
                        Rectangle.LEFT + Rectangle.RIGHT, 5);
                table.addCell(invcell);
                if (mode == StaticValues.AUTONUM_PURCHASEORDER || mode == StaticValues.AUTONUM_SALESORDER
                        || mode == StaticValues.AUTONUM_QUOTATION) {
                    bAmt = accCurrencyobj.getBaseToCurrencyAmount(requestParams, rate,
                            cEntry.getCurrency().getCurrencyID(), entryDate, 0);
                    double rateInBase = (Double) bAmt.getEntityList().get(0);
                    rate = rateInBase;
                }
                invcell = createCell(authHandlerDAOObj.getFormattedCurrency(rate, currencyid), fontSmallRegular,
                        Element.ALIGN_RIGHT, Rectangle.LEFT + Rectangle.RIGHT, 5);
                table.addCell(invcell);
                if (mode == StaticValues.AUTONUM_QUOTATION)
                    invcell = calculateDiscount(discountQuotation, currencyid);
                else
                    invcell = calculateDiscount(discount, currencyid);
                invcell.setHorizontalAlignment(Element.ALIGN_RIGHT);
                invcell.setPadding(5);
                invcell.setBorder(Rectangle.LEFT + Rectangle.RIGHT);
                table.addCell(invcell);

                amount1 = rate * quantity;
                if (discount != null) {
                    amount1 -= mode != StaticValues.AUTONUM_BILLINGINVOICE
                            ? (row.getDiscount().getDiscountValue())
                            : (row1.getDiscount().getDiscountValue());
                }
                if (discountQuotation != 0) {
                    amount1 -= discountQuotation;
                }
                double rowTaxPercent = 0;
                if (row != null && row.getTax() != null) {
                    requestParams.put("transactiondate", entryDate);
                    requestParams.put("taxid", row.getTax().getID());
                    KwlReturnObject result = accTaxObj.getTax(requestParams);
                    List taxList = result.getEntityList();
                    Object[] taxObj = (Object[]) taxList.get(0);
                    rowTaxPercent = taxObj[1] == null ? 0 : (Double) taxObj[1];
                } else if (row1 != null && row1.getTax() != null) {
                    requestParams.put("transactiondate", entryDate);
                    requestParams.put("taxid", row1.getTax().getID());
                    KwlReturnObject result = accTaxObj.getTax(requestParams);
                    List taxList = result.getEntityList();
                    Object[] taxObj = (Object[]) taxList.get(0);
                    rowTaxPercent = taxObj[1] == null ? 0 : (Double) taxObj[1];
                } else if (row3 != null && row3.getTax() != null) {
                    requestParams.put("transactiondate", entryDate);
                    requestParams.put("taxid", row3.getTax().getID());
                    KwlReturnObject result = accTaxObj.getTax(requestParams);
                    List taxList = result.getEntityList();
                    Object[] taxObj = (Object[]) taxList.get(0);
                    rowTaxPercent = taxObj[1] == null ? 0 : (Double) taxObj[1];
                } else if (row4 != null && row4.getTax() != null) {
                    requestParams.put("transactiondate", entryDate);
                    requestParams.put("taxid", row4.getTax().getID());
                    KwlReturnObject result = accTaxObj.getTax(requestParams);
                    List taxList = result.getEntityList();
                    Object[] taxObj = (Object[]) taxList.get(0);
                    rowTaxPercent = taxObj[1] == null ? 0 : (Double) taxObj[1];
                } else if (row5 != null && row5.getTax() != null) {
                    requestParams.put("transactiondate", entryDate);
                    requestParams.put("taxid", row5.getTax().getID());
                    KwlReturnObject result = accTaxObj.getTax(requestParams);
                    List taxList = result.getEntityList();
                    Object[] taxObj = (Object[]) taxList.get(0);
                    rowTaxPercent = taxObj[1] == null ? 0 : (Double) taxObj[1];
                } else if (row6 != null && row6.getTax() != null) {
                    requestParams.put("transactiondate", entryDate);
                    requestParams.put("taxid", row6.getTax().getID());
                    KwlReturnObject result = accTaxObj.getTax(requestParams);
                    List taxList = result.getEntityList();
                    Object[] taxObj = (Object[]) taxList.get(0);
                    rowTaxPercent = taxObj[1] == null ? 0 : (Double) taxObj[1];
                } else if (row7 != null && row7.getTax() != null) {
                    requestParams.put("transactiondate", entryDate);
                    requestParams.put("taxid", row7.getTax().getID());
                    KwlReturnObject result = accTaxObj.getTax(requestParams);
                    List taxList = result.getEntityList();
                    Object[] taxObj = (Object[]) taxList.get(0);
                    rowTaxPercent = taxObj[1] == null ? 0 : (Double) taxObj[1];
                }
                invcell = createCell(
                        authHandlerDAOObj.getFormattedCurrency(amount1 * rowTaxPercent / 100, currencyid),
                        fontSmallRegular, Element.ALIGN_RIGHT, Rectangle.LEFT + Rectangle.RIGHT, 5);
                table.addCell(invcell);
                amount1 += amount1 * rowTaxPercent / 100;
                invcell = createCell(authHandlerDAOObj.getFormattedCurrency(amount1, currencyid),
                        fontSmallRegular, Element.ALIGN_RIGHT, Rectangle.LEFT + Rectangle.RIGHT, 5);
                table.addCell(invcell);
                total += amount1;

                addTableRow(mainTable, table); //Break table after adding detail's row
                table = getBlankTable();
            }
            for (int j = 0; j < 98; j++) {
                invcell = new PdfPCell(new Paragraph("", fontSmallRegular));
                invcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                invcell.setBorder(Rectangle.LEFT + Rectangle.RIGHT);
                table.addCell(invcell);
            }
            addTableRow(mainTable, table); //Break table after adding extra space
            table = getBlankTable();
            //                for (int i = 0; i < 5; i++) {
            //                    invcell = new PdfPCell(new Paragraph("", fontSmallRegular));
            //                    invcell.setHorizontalAlignment(Element.ALIGN_CENTER);
            //                    invcell.setBorder(Rectangle.TOP);
            //                    table.addCell(invcell);
            //                }
            cell3 = createCell(
                    messageSource.getMessage("acc.rem.194", null, RequestContextUtils.getLocale(request)),
                    fontSmallBold, Element.ALIGN_RIGHT, Rectangle.TOP, 5);
            cell3.setColspan(6);
            table.addCell(cell3);
            //                if(mode == StaticValues.AUTONUM_INVOICE || mode==StaticValues.AUTONUM_PURCHASEORDER || mode==StaticValues.AUTONUM_SALESORDER){
            //                    bAmt = accCurrencyobj.getBaseToCurrencyAmount(requestParams, total, cEntry.getCurrency().getCurrencyID(), entryDate, 0);
            //                    double baseTotalAmount = (Double) bAmt.getEntityList().get(0);
            //                    total = baseTotalAmount;
            //                }
            cell3 = createCell(authHandlerDAOObj.getFormattedCurrency(total, currencyid), fontSmallRegular,
                    Element.ALIGN_RIGHT, 15, 5);
            table.addCell(cell3);
            //                for (int i = 0; i < 5; i++) {
            //                    invcell = new PdfPCell(new Paragraph("", fontSmallRegular));
            //                    invcell.setHorizontalAlignment(Element.ALIGN_CENTER);
            //                    invcell.setPadding(5);
            //                    invcell.setBorder(0);
            //                    table.addCell(invcell);
            //                }
            Discount totalDiscount = null;
            double totaltax = 0, discountTotalQuotation = 0;
            double totalAmount = 0;
            double taxPercent = 0;
            if (mainTax != null) { //Get tax percent
                requestParams.put("transactiondate", entryDate);
                requestParams.put("taxid", mainTax.getID());
                KwlReturnObject result = accTaxObj.getTax(requestParams);
                List taxList = result.getEntityList();
                Object[] taxObj = (Object[]) taxList.get(0);
                taxPercent = taxObj[1] == null ? 0 : (Double) taxObj[1];
            }

            if (mode == StaticValues.AUTONUM_INVOICE) {
                totalDiscount = inv.getDiscount();
                totaltax = inv.getTaxEntry() != null ? inv.getTaxEntry().getAmount() : 0;
                totalAmount = inv.getCustomerEntry().getAmount();
            } else if (mode == StaticValues.AUTONUM_BILLINGSALESORDER
                    || mode == StaticValues.AUTONUM_BILLINGPURCHASEORDER
                    || mode == StaticValues.AUTONUM_PURCHASEORDER || mode == StaticValues.AUTONUM_SALESORDER
                    || mode == StaticValues.AUTONUM_QUOTATION) {
                totalAmount = total;
                if (mode == StaticValues.AUTONUM_QUOTATION && quotation.getDiscount() != 0) {
                    if (!quotation.isPerDiscount()) {
                        discountTotalQuotation = quotation.getDiscount();
                        total = total - quotation.getDiscount();
                        totalAmount = total;
                    } else {
                        discountTotalQuotation = total * quotation.getDiscount() / 100;
                        total -= (total * quotation.getDiscount() / 100);
                        totalAmount = total;
                    }
                }
                totaltax = (taxPercent == 0 ? 0 : totalAmount * taxPercent / 100);
                totalAmount = total + totaltax;
            } else {
                totalDiscount = inv1.getDiscount();
                totaltax = inv1.getTaxEntry() != null ? inv1.getTaxEntry().getAmount() : 0;
                totalAmount = (inv1.getCustomerEntry().getAmount());
            }
            if (mode != StaticValues.AUTONUM_PURCHASEORDER || mode != StaticValues.AUTONUM_SALESORDER) {
                cell3 = createCell(
                        messageSource.getMessage("acc.rem.195", null, RequestContextUtils.getLocale(request)),
                        fontSmallBold, Element.ALIGN_RIGHT, 0, 5);
                cell3.setColspan(6);
                table.addCell(cell3);
                if (mode == StaticValues.AUTONUM_QUOTATION)
                    invcell = calculateDiscount(discountTotalQuotation, currencyid);
                else
                    invcell = calculateDiscount(totalDiscount, currencyid);
                invcell.setHorizontalAlignment(Element.ALIGN_RIGHT);
                invcell.setPadding(5);
                table.addCell(invcell);
            }
            //                for (int i = 0; i < 5; i++) {
            //                    invcell = new PdfPCell(new Paragraph("", fontSmallRegular));
            //                    invcell.setHorizontalAlignment(Element.ALIGN_CENTER);
            //                    invcell.setPadding(5);
            //                    invcell.setBorder(0);
            //                    table.addCell(invcell);
            //                }
            StringBuffer taxNameStr = new StringBuffer();
            if (mainTax != null) {
                taxNameStr.append(mainTax.getName());
                taxNameStr.append(" ");
                taxNameStr.append(taxPercent);
                taxNameStr.append("% (+)");
            } else {
                taxNameStr.append(
                        messageSource.getMessage("acc.rem.196", null, RequestContextUtils.getLocale(request)));
            }
            cell3 = createCell(taxNameStr.toString(), fontSmallBold, Element.ALIGN_RIGHT, 0, 5);
            cell3.setColspan(6);
            table.addCell(cell3);
            cell3 = createCell(authHandlerDAOObj.getFormattedCurrency(totaltax, currencyid), fontSmallRegular,
                    Element.ALIGN_RIGHT, 15, 5);
            table.addCell(cell3);
            //                for (int i = 0; i < 5; i++) {
            //                    invcell = new PdfPCell(new Paragraph("", fontSmallRegular));
            //                    invcell.setHorizontalAlignment(Element.ALIGN_CENTER);
            //                    invcell.setPadding(5);
            //                    invcell.setBorder(0);
            //                    table.addCell(invcell);
            //                }
            cell3 = createCell(
                    messageSource.getMessage("acc.rem.197", null, RequestContextUtils.getLocale(request)),
                    fontSmallBold, Element.ALIGN_RIGHT, 0, 5);
            cell3.setColspan(6);
            table.addCell(cell3);
            cell3 = createCell(authHandlerDAOObj.getFormattedCurrency(totalAmount, currencyid),
                    fontSmallRegular, Element.ALIGN_RIGHT, 15, 5);
            table.addCell(cell3);

            addTableRow(mainTable, table);

            KWLCurrency currency = (KWLCurrency) kwlCommonTablesDAOObj
                    .getClassObject(KWLCurrency.class.getName(), currencyid);
            String netinword = EnglishNumberToWordsOjb.convert(Double.parseDouble(String.valueOf(totalAmount)),
                    currency);
            String currencyname = currency.getName();
            cell3 = createCell(
                    messageSource.getMessage("acc.rem.177", null, RequestContextUtils.getLocale(request))
                            + " : " + currencyname + " " + netinword + " Only.",
                    fontSmallRegular, Element.ALIGN_LEFT,
                    Rectangle.LEFT + Rectangle.RIGHT + Rectangle.BOTTOM + Rectangle.TOP, 5);
            PdfPTable table2 = new PdfPTable(1);
            table2.addCell(cell3);
            PdfPCell mainCell62 = new PdfPCell(table2);
            mainCell62.setBorder(0);
            mainCell62.setPadding(10);
            mainTable.addCell(mainCell62);
            PdfPTable helpTable = new PdfPTable(new float[] { 8, 92 });
            helpTable.setWidthPercentage(100);
            Phrase phrase1 = new Phrase(
                    messageSource.getMessage("acc.common.memo", null, RequestContextUtils.getLocale(request))
                            + ":  ",
                    fontSmallBold);
            Phrase phrase2 = new Phrase(memo, fontSmallRegular);
            PdfPCell pcell1 = new PdfPCell(phrase1);
            PdfPCell pcell2 = new PdfPCell(phrase2);
            pcell1.setBorder(0);
            pcell1.setPadding(10);
            pcell1.setPaddingRight(0);
            pcell2.setBorder(0);
            pcell2.setPadding(10);
            helpTable.addCell(pcell1);
            helpTable.addCell(pcell2);

            PdfPCell mainCell61 = new PdfPCell(helpTable);
            mainCell61.setBorder(0);
            mainTable.addCell(mainCell61);

        } else if (mode == StaticValues.AUTONUM_DEBITNOTE || mode == StaticValues.AUTONUM_CREDITNOTE
                || mode == StaticValues.AUTONUM_BILLINGCREDITNOTE
                || mode == StaticValues.AUTONUM_BILLINGDEBITNOTE) {
            addHeaderFooter(document, writer);

            CreditNote creNote = null;
            DebitNote dbNote = null;
            BillingCreditNote biCreNote = null;
            BillingDebitNote biDeNote = null;
            Company com = null;
            Account cEntry = null;
            String invno = "";
            Date entryDate = null;
            Customer customerObj = null;
            Vendor vendorObj = null;
            double taxMain = 0;

            if (mode == StaticValues.AUTONUM_BILLINGCREDITNOTE) {
                KwlReturnObject cap = kwlCommonTablesDAOObj.getObject(BillingCreditNote.class.getName(),
                        billid);
                biCreNote = (BillingCreditNote) cap.getEntityList().get(0);
                Set<JournalEntryDetail> entryset = biCreNote.getJournalEntry().getDetails();
                customerObj = new Customer();
                Iterator itr = entryset.iterator();
                while (itr.hasNext()) {
                    cEntry = ((JournalEntryDetail) itr.next()).getAccount();
                    //                    customer=(Customer)session.get(Customer.class,acc.getID());
                    customerObj = (Customer) kwlCommonTablesDAOObj.getClassObject(Customer.class.getName(),
                            cEntry.getID());
                    if (customerObj != null)
                        break;
                }
                com = biCreNote.getCompany();
                invno = biCreNote.getCreditNoteNumber();
                entryDate = biCreNote.getJournalEntry().getEntryDate();
            } else if (mode == StaticValues.AUTONUM_BILLINGDEBITNOTE) {
                KwlReturnObject cap = kwlCommonTablesDAOObj.getObject(BillingDebitNote.class.getName(), billid);
                biDeNote = (BillingDebitNote) cap.getEntityList().get(0);
                //                    dbNote = (BillingDebitNote) kwlCommonTablesDAOObj.getClassObject(BillingDebitNote.class.getName(), billid);
                com = biDeNote.getCompany();
                Set<JournalEntryDetail> entryset = biDeNote.getJournalEntry().getDetails();
                vendorObj = new Vendor();
                Iterator itr = entryset.iterator();
                while (itr.hasNext()) {
                    cEntry = ((JournalEntryDetail) itr.next()).getAccount();
                    //                    vendor=(Vendor)session.get(Vendor.class,acc.getID());
                    vendorObj = (Vendor) kwlCommonTablesDAOObj.getClassObject(Vendor.class.getName(),
                            cEntry.getID());
                    if (vendorObj != null)
                        break;
                }
                invno = biDeNote.getDebitNoteNumber();
                entryDate = biDeNote.getJournalEntry().getEntryDate();
            }
            if (mode == StaticValues.AUTONUM_CREDITNOTE) {
                KwlReturnObject cap = kwlCommonTablesDAOObj.getObject(CreditNote.class.getName(), billid);
                creNote = (CreditNote) cap.getEntityList().get(0);
                Set<JournalEntryDetail> entryset = creNote.getJournalEntry().getDetails();
                customerObj = new Customer();
                Iterator itr = entryset.iterator();
                while (itr.hasNext()) {
                    cEntry = ((JournalEntryDetail) itr.next()).getAccount();
                    //                    customer=(Customer)session.get(Customer.class,acc.getID());
                    customerObj = (Customer) kwlCommonTablesDAOObj.getClassObject(Customer.class.getName(),
                            cEntry.getID());
                    if (customerObj != null)
                        break;
                }
                com = creNote.getCompany();
                invno = creNote.getCreditNoteNumber();
                entryDate = creNote.getJournalEntry().getEntryDate();
                //inv = (Invoice) session.get(Invoice.class, billid);
            } else if (mode == StaticValues.AUTONUM_DEBITNOTE) {
                KwlReturnObject cap = kwlCommonTablesDAOObj.getObject(DebitNote.class.getName(), billid);
                dbNote = (DebitNote) cap.getEntityList().get(0);
                //                    dbNote = (BillingDebitNote) kwlCommonTablesDAOObj.getClassObject(BillingDebitNote.class.getName(), billid);
                com = dbNote.getCompany();
                Set<JournalEntryDetail> entryset = dbNote.getJournalEntry().getDetails();
                vendorObj = new Vendor();
                Iterator itr = entryset.iterator();
                while (itr.hasNext()) {
                    cEntry = ((JournalEntryDetail) itr.next()).getAccount();
                    //                    vendor=(Vendor)session.get(Vendor.class,acc.getID());
                    vendorObj = (Vendor) kwlCommonTablesDAOObj.getClassObject(Vendor.class.getName(),
                            cEntry.getID());
                    if (vendorObj != null)
                        break;
                }
                invno = dbNote.getDebitNoteNumber();
                entryDate = dbNote.getJournalEntry().getEntryDate();
            }

            //                Company com = mode != StaticValues.AUTONUM_BILLINGINVOICE ? inv.getCompany() : inv1.getCompany();
            String company[] = new String[4];
            company[0] = com.getCompanyName();
            company[1] = com.getAddress();
            company[2] = com.getEmailID();
            company[3] = com.getPhoneNumber();

            PdfPTable table1 = new PdfPTable(2);
            table1.setWidthPercentage(100);
            table1.setWidths(new float[] { 50, 50 });

            tab1 = addCompanyLogo(logoPath, com);
            tab2 = new PdfPTable(1);
            PdfPCell invCell = null;

            CompanyAccountPreferences pref = (CompanyAccountPreferences) kwlCommonTablesDAOObj
                    .getClassObject(CompanyAccountPreferences.class.getName(), com.getCompanyID());
            Account cash = pref.getCashAccount();
            //
            //                if (mode != StaticValues.AUTONUM_BILLINGINVOICE) {
            //                    cEntry = inv.getCustomerEntry().getAccount();
            //                } else {
            //                    cEntry = inv1.getCustomerEntry().getAccount();
            //                }
            String theader = "";
            if (mode == StaticValues.AUTONUM_CREDITNOTE || mode == StaticValues.AUTONUM_BILLINGCREDITNOTE) {
                theader = messageSource.getMessage("acc.accPref.autoCN", null,
                        RequestContextUtils.getLocale(request));
            } else if (mode == StaticValues.AUTONUM_DEBITNOTE
                    || mode == StaticValues.AUTONUM_BILLINGDEBITNOTE) {
                theader = messageSource.getMessage("acc.accPref.autoDN", null,
                        RequestContextUtils.getLocale(request));
            }
            invCell = createCell(theader, fontTbl, Element.ALIGN_RIGHT, 0, 5);
            tab2.addCell(invCell);

            PdfPCell cell1 = new PdfPCell(tab1);
            cell1.setBorder(0);
            table1.addCell(cell1);
            PdfPCell cel2 = new PdfPCell(tab2);
            cel2.setBorder(0);
            table1.addCell(cel2);

            PdfPCell mainCell11 = new PdfPCell(table1);
            mainCell11.setBorder(0);
            mainCell11.setPadding(10);
            mainTable.addCell(mainCell11);

            PdfPTable userTable2 = new PdfPTable(2);
            userTable2.setWidthPercentage(100);
            userTable2.setWidths(new float[] { 60, 40 });

            tab3 = getCompanyInfo(company);

            PdfPTable tab4 = new PdfPTable(2);
            tab4.setWidthPercentage(100);
            tab4.setWidths(new float[] { 30, 70 });

            PdfPCell cell2 = createCell(theader + " #", fontSmallBold, Element.ALIGN_LEFT, 0, 5);
            tab4.addCell(cell2);
            //                String invno = mode != StaticValues.AUTONUM_BILLINGINVOICE ? inv.getInvoiceNumber() : inv1.getBillingInvoiceNumber();
            cell2 = createCell(": " + invno, fontSmallRegular, Element.ALIGN_LEFT, 0, 5);
            tab4.addCell(cell2);
            cell2 = createCell(
                    messageSource.getMessage("acc.rem.198", null, RequestContextUtils.getLocale(request)) + " ",
                    fontSmallBold, Element.ALIGN_LEFT, 0, 5);
            tab4.addCell(cell2);
            cell2 = createCell(": " + formatter.format(entryDate), fontSmallRegular, Element.ALIGN_LEFT, 0, 5);
            tab4.addCell(cell2);

            cell1 = new PdfPCell(tab3);
            cell1.setBorder(0);
            userTable2.addCell(cell1);
            cel2 = new PdfPCell(tab4);
            cel2.setBorder(0);
            userTable2.addCell(cel2);

            PdfPCell mainCell12 = new PdfPCell(userTable2);
            mainCell12.setBorder(0);
            mainCell12.setPadding(10);
            mainTable.addCell(mainCell12);

            PdfPTable tab5 = new PdfPTable(2);
            tab5.setWidthPercentage(100);
            tab5.setWidths(new float[] { 10, 90 });
            PdfPCell cell3 = createCell(
                    messageSource.getMessage("acc.common.to", null, RequestContextUtils.getLocale(request))
                            + " , ",
                    fontSmallBold, Element.ALIGN_LEFT, 0, 5);
            tab5.addCell(cell3);
            cell3 = createCell("", fontSmallBold, Element.ALIGN_LEFT, 0, 0);
            tab5.addCell(cell3);
            cell3 = createCell("", fontSmallBold, Element.ALIGN_LEFT, 0, 0);
            tab5.addCell(cell3);

            String customerName = "";
            String shipTo = "";
            String memo = "";
            Iterator itr = null;

            HashMap<String, Object> invRequestParams = new HashMap<String, Object>();
            ArrayList filter_names = new ArrayList(), filter_params = new ArrayList(),
                    order_by = new ArrayList(), order_type = new ArrayList();
            order_by.add("srno");
            order_type.add("asc");
            invRequestParams.put("order_by", order_by);
            invRequestParams.put("order_type", order_type);
            KwlReturnObject idresult = null;

            if (mode == StaticValues.AUTONUM_BILLINGCREDITNOTE) {
                customerName = customerObj.getName();//inv.getCustomer()==null?inv.getCustomerEntry().getAccount().getName():inv.getCustomer().getName();
                shipTo = customerObj.getBillingAddress();//inv.getShipTo();
                filter_names.add("creditNote.ID");
                filter_params.add(biCreNote.getID());
                invRequestParams.put("filter_names", filter_names);
                invRequestParams.put("filter_params", filter_params);
                idresult = accCreditNoteDAOobj.getBillingCreditNoteDetails(invRequestParams);
                itr = idresult.getEntityList().iterator();
                memo = biCreNote.getMemo();
            } else if (mode == StaticValues.AUTONUM_BILLINGDEBITNOTE) {
                customerName = vendorObj.getName();//dbNote.getCustomer().getName();
                shipTo = vendorObj.getAddress();
                filter_names.add("debitNote.ID");
                filter_params.add(biDeNote.getID());
                invRequestParams.put("filter_names", filter_names);
                invRequestParams.put("filter_params", filter_params);
                idresult = accDebitNoteobj.getBillingDebitNoteDetails(invRequestParams);
                itr = idresult.getEntityList().iterator();
                memo = biDeNote.getMemo();
            } else if (mode == StaticValues.AUTONUM_CREDITNOTE) {
                customerName = customerObj.getName();//inv.getCustomer()==null?inv.getCustomerEntry().getAccount().getName():inv.getCustomer().getName();
                shipTo = customerObj.getBillingAddress();//inv.getShipTo();
                filter_names.add("creditNote.ID");
                filter_params.add(creNote.getID());
                invRequestParams.put("filter_names", filter_names);
                invRequestParams.put("filter_params", filter_params);
                idresult = accCreditNoteDAOobj.getCreditNoteDetails(invRequestParams);
                itr = idresult.getEntityList().iterator();
                memo = creNote.getMemo();
            } else if (mode == StaticValues.AUTONUM_DEBITNOTE) {
                customerName = vendorObj.getName();//dbNote.getCustomer().getName();
                shipTo = vendorObj.getAddress();
                filter_names.add("debitNote.ID");
                filter_params.add(dbNote.getID());
                invRequestParams.put("filter_names", filter_names);
                invRequestParams.put("filter_params", filter_params);
                idresult = accDebitNoteobj.getDebitNoteDetails(invRequestParams);
                itr = idresult.getEntityList().iterator();
                memo = dbNote.getMemo();
            }
            cell3 = createCell(customerName, fontSmallRegular, Element.ALIGN_LEFT, 0, 5);
            tab5.addCell(cell3);
            cell3 = createCell("", fontSmallBold, Element.ALIGN_LEFT, 0, 0);
            tab5.addCell(cell3);
            cell3 = createCell(shipTo, fontSmallRegular, Element.ALIGN_LEFT, 0, 5);
            tab5.addCell(cell3);

            PdfPCell mainCell14 = new PdfPCell(tab5);
            mainCell14.setBorder(0);
            mainCell14.setPadding(10);
            mainTable.addCell(mainCell14);

            String[] header = {
                    messageSource.getMessage("acc.cnList.Sno", null, RequestContextUtils.getLocale(request)),
                    messageSource.getMessage("acc.rem.190", null, RequestContextUtils.getLocale(request)),
                    messageSource.getMessage("acc.rem.187", null, RequestContextUtils.getLocale(request)),
                    messageSource.getMessage("acc.rem.193", null, RequestContextUtils.getLocale(request)) };
            PdfPTable table = new PdfPTable(4);
            table.setWidthPercentage(100);
            table.setWidths(new float[] { 7, 35, 29, 29 });
            PdfPCell invcell = null;
            for (int i = 0; i < header.length; i++) {
                invcell = new PdfPCell(new Paragraph(header[i], fontSmallBold));
                invcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                invcell.setBackgroundColor(Color.LIGHT_GRAY);
                invCell.setBorder(0);
                invcell.setPadding(3);
                table.addCell(invcell);
            }

            //                Iterator itr = mode != StaticValues.AUTONUM_BILLINGINVOICE ? inv.getRows().iterator() : inv1.getRows().iterator();
            CreditNoteDetail row = null;
            DebitNoteDetail row1 = null;
            BillingCreditNoteDetail row2 = null;
            BillingDebitNoteDetail row3 = null;
            int index = 0;
            while (itr.hasNext()) {
                String prodName = "";
                double quantity = 0;
                Discount discount = null;
                String uom = "";
                double amount1 = 0;
                if (mode == StaticValues.AUTONUM_CREDITNOTE) {
                    row = (CreditNoteDetail) itr.next();
                    prodName = row.getInvoiceRow().getInventory().getProduct().getName();
                    quantity = row.getQuantity();
                    discount = row.getDiscount();
                    taxMain = taxMain + row.getTaxAmount();
                    total = total + row.getTaxAmount();
                    try {
                        uom = row.getInvoiceRow().getInventory().getProduct().getUnitOfMeasure() == null ? ""
                                : row.getInvoiceRow().getInventory().getProduct().getUnitOfMeasure().getName();
                    } catch (Exception ex) {//In case of exception use uom="";
                    }
                } else if (mode == StaticValues.AUTONUM_DEBITNOTE) {
                    row1 = (DebitNoteDetail) itr.next();
                    prodName = row1.getGoodsReceiptRow().getInventory().getProduct().getName();
                    quantity = row1.getQuantity();
                    discount = row1.getDiscount();
                    taxMain = taxMain + row1.getTaxAmount();
                    total = total + row1.getTaxAmount();
                    try {
                        uom = row1.getGoodsReceiptRow().getInventory().getProduct().getUnitOfMeasure() == null
                                ? ""
                                : row1.getGoodsReceiptRow().getInventory().getProduct().getUnitOfMeasure()
                                        .getName();
                    } catch (Exception ex) {//In case of exception use uom="";
                    }
                } else if (mode == StaticValues.AUTONUM_BILLINGCREDITNOTE) {
                    row2 = (BillingCreditNoteDetail) itr.next();
                    prodName = row2.getInvoiceRow().getProductDetail();
                    quantity = row2.getQuantity();
                    discount = row2.getDiscount();
                    taxMain = taxMain + row2.getTaxAmount();
                    total = total + row2.getTaxAmount();
                } else if (mode == StaticValues.AUTONUM_BILLINGDEBITNOTE) {
                    row3 = (BillingDebitNoteDetail) itr.next();
                    prodName = row3.getGoodsReceiptRow().getProductDetail();
                    quantity = row3.getQuantity();
                    discount = row3.getDiscount();
                    taxMain = taxMain + row3.getTaxAmount();
                    total = total + row3.getTaxAmount();
                }

                invcell = createCell((++index) + ".", fontSmallRegular, Element.ALIGN_RIGHT,
                        Rectangle.LEFT + Rectangle.RIGHT, 5);
                table.addCell(invcell);
                invcell = createCell(prodName, fontSmallRegular, Element.ALIGN_LEFT,
                        Rectangle.LEFT + Rectangle.RIGHT, 5);
                table.addCell(invcell);
                invcell = createCell((int) quantity + " " + uom, fontSmallRegular, Element.ALIGN_CENTER,
                        Rectangle.LEFT + Rectangle.RIGHT, 5);
                table.addCell(invcell);
                invcell = calculateDiscount(discount, currencyid);
                invcell.setHorizontalAlignment(Element.ALIGN_RIGHT);
                invcell.setPadding(5);
                invcell.setBorder(Rectangle.LEFT + Rectangle.RIGHT);
                table.addCell(invcell);

                total += discount.getDiscountValue();
                //                    invcell = createCell(authHandlerDAOObj.getFormattedCurrency(amount1, currencyid), fontSmallRegular, Element.ALIGN_RIGHT, Rectangle.LEFT + Rectangle.RIGHT, 5);
                //                    table.addCell(invcell);

            }
            //                for (int j = 0; j < 70; j++) {
            //                    invcell = new PdfPCell(new Paragraph("", fontSmallRegular));
            //                    invcell.setHorizontalAlignment(Element.ALIGN_CENTER);
            //                    invcell.setBorder(Rectangle.LEFT + Rectangle.RIGHT);
            //                    table.addCell(invcell);
            //                }
            //                for (int i = 0; i < 3; i++) {
            //                    invcell = new PdfPCell(new Paragraph("", fontSmallRegular));
            //                    invcell.setHorizontalAlignment(Element.ALIGN_CENTER);
            //                    invcell.setBorder(Rectangle.TOP);
            //                    table.addCell(invcell);
            //                }

            for (int i = 0; i < 2; i++) {
                invcell = new PdfPCell(new Paragraph("", fontSmallRegular));
                invcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                invcell.setBorder(Rectangle.TOP);
                table.addCell(invcell);
            }

            cell3 = createCell(
                    messageSource.getMessage("acc.rem.192", null, RequestContextUtils.getLocale(request)),
                    fontSmallBold, Element.ALIGN_CENTER, Rectangle.TOP, 5);
            table.addCell(cell3);
            cell3 = createCell(authHandlerDAOObj.getFormattedCurrency(taxMain, currencyid), fontSmallRegular,
                    Element.ALIGN_RIGHT, 15, 5);
            table.addCell(cell3);

            for (int i = 0; i < 2; i++) {
                invcell = new PdfPCell(new Paragraph("", fontSmallRegular));
                invcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                invcell.setBorder(0);
                table.addCell(invcell);
            }

            cell3 = createCell(
                    messageSource.getMessage("acc.rem.197", null, RequestContextUtils.getLocale(request)),
                    fontSmallBold, Element.ALIGN_CENTER, 0, 5);
            table.addCell(cell3);
            cell3 = createCell(authHandlerDAOObj.getFormattedCurrency(total, currencyid), fontSmallRegular,
                    Element.ALIGN_RIGHT, 15, 5);
            table.addCell(cell3);

            PdfPCell mainCell5 = new PdfPCell(table);
            mainCell5.setBorder(0);
            mainCell5.setPadding(10);
            mainTable.addCell(mainCell5);

            PdfPTable helpTable = new PdfPTable(new float[] { 8, 92 });
            helpTable.setWidthPercentage(100);
            Phrase phrase1 = new Phrase(
                    messageSource.getMessage("acc.common.memo", null, RequestContextUtils.getLocale(request))
                            + " : ",
                    fontSmallBold);
            Phrase phrase2 = new Phrase(memo, fontSmallRegular);
            PdfPCell pcell1 = new PdfPCell(phrase1);
            PdfPCell pcell2 = new PdfPCell(phrase2);
            pcell1.setBorder(0);
            pcell1.setPadding(10);
            pcell1.setPaddingRight(0);
            pcell2.setBorder(0);
            pcell2.setPadding(10);
            helpTable.addCell(pcell1);
            helpTable.addCell(pcell2);

            PdfPCell mainCell61 = new PdfPCell(helpTable);
            mainCell61.setBorder(0);
            mainTable.addCell(mainCell61);

        } else if (mode == StaticValues.AUTONUM_GOODSRECEIPT
                || mode == StaticValues.AUTONUM_BILLINGGOODSRECEIPT) {
            addHeaderFooter(document, writer);
            GoodsReceipt gr = null;
            BillingGoodsReceipt gr1 = null;
            if (mode == StaticValues.AUTONUM_GOODSRECEIPT) {
                gr = (GoodsReceipt) kwlCommonTablesDAOObj.getClassObject(GoodsReceipt.class.getName(), billid);
            } else {
                gr1 = (BillingGoodsReceipt) kwlCommonTablesDAOObj
                        .getClassObject(BillingGoodsReceipt.class.getName(), billid);
            }

            Company com = mode == StaticValues.AUTONUM_GOODSRECEIPT ? gr.getCompany() : gr1.getCompany();
            String company[] = new String[4];
            company[0] = com.getCompanyName();
            company[1] = com.getAddress();
            company[2] = com.getEmailID();
            company[3] = com.getPhoneNumber();

            KWLCurrency rowCurrency = (mode == StaticValues.AUTONUM_GOODSRECEIPT ? gr.getCurrency()
                    : gr1.getCurrency());
            String rowCurrenctID = rowCurrency == null ? currencyid : rowCurrency.getCurrencyID();

            PdfPTable table1 = new PdfPTable(2);
            table1.setWidthPercentage(100);
            table1.setWidths(new float[] { 50, 50 });

            tab1 = addCompanyLogo(logoPath, com);
            tab2 = new PdfPTable(1);
            PdfPCell invCell = null;

            CompanyAccountPreferences pref = (CompanyAccountPreferences) kwlCommonTablesDAOObj
                    .getClassObject(CompanyAccountPreferences.class.getName(), com.getCompanyID());
            Account cash = pref.getCashAccount();
            Account vEntry;
            if (mode == StaticValues.AUTONUM_GOODSRECEIPT) {
                vEntry = gr.getVendorEntry().getAccount();
            } else {
                vEntry = gr1.getVendorEntry().getAccount();
            }
            String theader = vEntry == cash
                    ? messageSource.getMessage("acc.accPref.autoCP", null,
                            RequestContextUtils.getLocale(request))
                    : messageSource.getMessage("acc.accPref.autoVI", null,
                            RequestContextUtils.getLocale(request));
            invCell = createCell(theader, fontTbl, Element.ALIGN_RIGHT, 0, 5);
            tab2.addCell(invCell);

            PdfPCell cell1 = new PdfPCell(tab1);
            cell1.setBorder(0);
            table1.addCell(cell1);
            PdfPCell cel2 = new PdfPCell(tab2);
            cel2.setBorder(0);
            table1.addCell(cel2);

            PdfPCell mainCell11 = new PdfPCell(table1);
            mainCell11.setBorder(0);
            mainTable.addCell(mainCell11);

            blankTable = addBlankLine(3);
            blankCell = new PdfPCell(blankTable);
            blankCell.setBorder(0);
            mainTable.addCell(blankCell);

            PdfPTable userTable2 = new PdfPTable(2);
            userTable2.setWidthPercentage(100);
            userTable2.setWidths(new float[] { 60, 40 });

            tab3 = getCompanyInfo(company);

            PdfPTable tab4 = new PdfPTable(2);
            tab4.setWidthPercentage(100);
            tab4.setWidths(new float[] { 30, 70 });

            PdfPCell cell2 = createCell(theader + " #", fontSmallBold, Element.ALIGN_LEFT, 0, 5);
            tab4.addCell(cell2);
            String grno = mode == StaticValues.AUTONUM_GOODSRECEIPT ? gr.getGoodsReceiptNumber()
                    : gr1.getBillingGoodsReceiptNumber();
            cell2 = createCell(": " + grno, fontSmallRegular, Element.ALIGN_LEFT, 0, 5);
            tab4.addCell(cell2);
            cell2 = createCell(
                    messageSource.getMessage("acc.rem.198", null, RequestContextUtils.getLocale(request))
                            + "  ",
                    fontSmallBold, Element.ALIGN_LEFT, 0, 5);
            tab4.addCell(cell2);
            cell2 = createCell(
                    ": " + formatter.format(
                            mode == StaticValues.AUTONUM_GOODSRECEIPT ? gr.getJournalEntry().getEntryDate()
                                    : gr1.getJournalEntry().getEntryDate()),
                    fontSmallRegular, Element.ALIGN_LEFT, 0, 5);
            tab4.addCell(cell2);

            cell1 = new PdfPCell(tab3);
            cell1.setBorder(0);
            userTable2.addCell(cell1);
            cel2 = new PdfPCell(tab4);
            cel2.setBorder(0);
            userTable2.addCell(cel2);

            PdfPCell mainCell12 = new PdfPCell(userTable2);
            mainCell12.setBorder(0);
            mainTable.addCell(mainCell12);

            blankTable = addBlankLine(3);
            blankCell = new PdfPCell(blankTable);
            blankCell.setBorder(0);
            mainTable.addCell(blankCell);

            PdfPTable tab5 = new PdfPTable(2);
            tab5.setWidthPercentage(100);
            tab5.setWidths(new float[] { 10, 90 });
            PdfPCell cell3 = createCell(
                    messageSource.getMessage("acc.common.from", null, RequestContextUtils.getLocale(request))
                            + " , ",
                    fontSmallBold, Element.ALIGN_LEFT, 0, 5);
            tab5.addCell(cell3);
            cell3 = createCell("", fontSmallBold, Element.ALIGN_LEFT, 0, 0);
            tab5.addCell(cell3);
            cell3 = createCell("", fontSmallBold, Element.ALIGN_LEFT, 0, 0);
            tab5.addCell(cell3);

            String vendorName = "";
            if (mode == StaticValues.AUTONUM_GOODSRECEIPT) {
                vendorName = gr.getVendor() == null ? gr.getVendorEntry().getAccount().getName()
                        : gr.getVendor().getName();
            } else {
                vendorName = gr1.getVendor() == null ? gr1.getVendorEntry().getAccount().getName()
                        : gr1.getVendor().getName();
            }
            cell3 = createCell(vendorName, fontSmallRegular, Element.ALIGN_LEFT, 0, 5);
            tab5.addCell(cell3);
            cell3 = createCell("", fontSmallBold, Element.ALIGN_LEFT, 0, 0);
            tab5.addCell(cell3);
            cell3 = createCell(mode == StaticValues.AUTONUM_GOODSRECEIPT ? gr.getBillFrom() : gr1.getBillFrom(),
                    fontSmallRegular, Element.ALIGN_LEFT, 0, 5);
            tab5.addCell(cell3);

            PdfPCell mainCell14 = new PdfPCell(tab5);
            mainCell14.setBorder(0);
            mainTable.addCell(mainCell14);

            blankTable = addBlankLine(3);
            blankCell = new PdfPCell(blankTable);
            blankCell.setBorder(0);
            mainTable.addCell(blankCell);
            PdfPTable table;
            PdfPCell grcell = null;
            if (isExpenseInv) {
                String[] header = { "S.No.", "Account", "PRICE", "DISCOUNT", "TAX", "LINE TOTAL" };
                table = new PdfPTable(6);
                table.setWidthPercentage(100);
                table.setWidths(new float[] { 7, 23, 18, 18, 18, 16 });
                for (int i = 0; i < header.length; i++) {
                    grcell = new PdfPCell(new Paragraph(header[i], fontSmallBold));
                    grcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    grcell.setBackgroundColor(Color.LIGHT_GRAY);
                    grcell.setBorder(0);
                    grcell.setPadding(3);
                    table.addCell(grcell);
                }
            } else {

                String[] header = {
                        messageSource.getMessage("acc.cnList.Sno", null,
                                RequestContextUtils.getLocale(request)),
                        messageSource.getMessage("acc.rem.190", null, RequestContextUtils.getLocale(request)),
                        messageSource.getMessage("acc.rem.187", null, RequestContextUtils.getLocale(request)),
                        messageSource.getMessage("acc.rem.188", null, RequestContextUtils.getLocale(request)),
                        messageSource.getMessage("acc.rem.191", null, RequestContextUtils.getLocale(request)),
                        messageSource.getMessage("acc.rem.192", null, RequestContextUtils.getLocale(request)),
                        messageSource.getMessage("acc.rem.212", null, RequestContextUtils.getLocale(request)) };
                table = new PdfPTable(7);
                table.setWidthPercentage(100);
                table.setWidths(new float[] { 5, 20, 15, 15, 15, 13, 17 });
                for (int i = 0; i < header.length; i++) {
                    grcell = new PdfPCell(new Paragraph(header[i], fontSmallBold));
                    grcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    grcell.setBackgroundColor(Color.LIGHT_GRAY);
                    grcell.setBorder(0);
                    grcell.setPadding(3);
                    table.addCell(grcell);
                }
            }
            //                Iterator itr =mode==StaticValues.AUTONUM_GOODSRECEIPT?gr.getRows().iterator():gr1.getRows().iterator();
            HashMap<String, Object> grRequestParams = new HashMap<String, Object>();
            ArrayList filter_names = new ArrayList(), filter_params = new ArrayList(),
                    order_by = new ArrayList(), order_type = new ArrayList();
            order_by.add("srno");
            order_type.add("asc");
            grRequestParams.put("order_by", order_by);
            grRequestParams.put("order_type", order_type);

            KwlReturnObject idresult = null;
            if (mode != StaticValues.AUTONUM_BILLINGINVOICE
                    || mode != StaticValues.AUTONUM_BILLINGGOODSRECEIPT) {
                if (mode == StaticValues.AUTONUM_BILLINGGOODSRECEIPT) {
                    filter_names.add("billingGoodsReceipt.ID");
                    filter_params.add(gr1.getID());
                    grRequestParams.put("filter_names", filter_names);
                    grRequestParams.put("filter_params", filter_params);
                    idresult = accGoodsReceiptobj.getBillingGoodsReceiptDetails(grRequestParams);
                } else {
                    filter_names.add("goodsReceipt.ID");
                    filter_params.add(gr.getID());
                    grRequestParams.put("filter_names", filter_names);
                    grRequestParams.put("filter_params", filter_params);
                    if (isExpenseInv) {
                        idresult = accGoodsReceiptobj.getExpenseGRDetails(grRequestParams);
                    } else
                        idresult = accGoodsReceiptobj.getGoodsReceiptDetails(grRequestParams);
                }
            } else {
                filter_names.add("billingGoodsReceipt.ID");
                filter_params.add(gr.getID());
                grRequestParams.put("filter_names", filter_names);
                grRequestParams.put("filter_params", filter_params);
                idresult = accGoodsReceiptobj.getBillingGoodsReceiptDetails(grRequestParams);
            }
            Iterator itr = idresult.getEntityList().iterator();

            GoodsReceiptDetail row = null;
            BillingGoodsReceiptDetail row1 = null;
            ExpenseGRDetail exprow = null;
            int index = 0;
            while (itr.hasNext()) {
                if (mode == StaticValues.AUTONUM_GOODSRECEIPT) {
                    if (isExpenseInv)
                        exprow = (ExpenseGRDetail) itr.next();
                    else
                        row = (GoodsReceiptDetail) itr.next();
                } else {
                    row1 = (BillingGoodsReceiptDetail) itr.next();
                }
                if (isExpenseInv) {
                    grcell = createCell((++index) + ".", fontSmallRegular, Element.ALIGN_RIGHT,
                            Rectangle.LEFT + Rectangle.RIGHT, 5);
                    table.addCell(grcell);
                    grcell = createCell(exprow.getAccount().getName(), fontSmallRegular, Element.ALIGN_LEFT,
                            Rectangle.LEFT + Rectangle.RIGHT, 5);
                    table.addCell(grcell);
                    grcell = createCell(authHandlerDAOObj.getFormattedCurrency(exprow.getRate(), rowCurrenctID),
                            fontSmallRegular, Element.ALIGN_RIGHT, Rectangle.LEFT + Rectangle.RIGHT, 5);
                    table.addCell(grcell);
                    grcell = calculateDiscount(exprow.getDiscount(), rowCurrenctID);
                    grcell.setHorizontalAlignment(Element.ALIGN_RIGHT);
                    grcell.setPadding(5);
                    grcell.setBorder(Rectangle.LEFT + Rectangle.RIGHT);
                    table.addCell(grcell);
                    double amount1 = exprow.getRate();
                    Discount disc = exprow.getDiscount();
                    if (disc != null) {
                        amount1 -= exprow.getDiscount().getDiscountValue();
                    }

                    double rowTaxPercent = 0;
                    HashMap<String, Object> requestParams = AccountingManager.getGlobalParams(request);
                    if (exprow != null && exprow.getTax() != null) {
                        requestParams.put("transactiondate",
                                exprow.getGoodsReceipt().getJournalEntry().getEntryDate());
                        requestParams.put("taxid", exprow.getTax().getID());
                        KwlReturnObject result = accTaxObj.getTax(requestParams);
                        List taxList = result.getEntityList();
                        Object[] taxObj = (Object[]) taxList.get(0);
                        rowTaxPercent = taxObj[1] == null ? 0 : (Double) taxObj[1];
                    }
                    grcell = createCell(
                            authHandlerDAOObj.getFormattedCurrency(amount1 * rowTaxPercent / 100,
                                    rowCurrenctID),
                            fontSmallRegular, Element.ALIGN_RIGHT, Rectangle.LEFT + Rectangle.RIGHT, 5);
                    table.addCell(grcell);
                    amount1 += amount1 * rowTaxPercent / 100;
                    grcell = createCell(authHandlerDAOObj.getFormattedCurrency(amount1, rowCurrenctID),
                            fontSmallRegular, Element.ALIGN_RIGHT, Rectangle.LEFT + Rectangle.RIGHT, 5);
                    table.addCell(grcell);
                    total += amount1;
                    for (int j = 0; j < 84; j++) {
                        grcell = new PdfPCell(new Paragraph("", fontSmallRegular));
                        grcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                        grcell.setBorder(Rectangle.LEFT + Rectangle.RIGHT);
                        table.addCell(grcell);
                    }

                } else {
                    grcell = createCell((++index) + ".", fontSmallRegular, Element.ALIGN_RIGHT,
                            Rectangle.LEFT + Rectangle.RIGHT, 5);
                    table.addCell(grcell);
                    grcell = createCell(
                            mode == StaticValues.AUTONUM_GOODSRECEIPT
                                    ? row.getInventory().getProduct().getName()
                                    : row1.getProductDetail(),
                            fontSmallRegular, Element.ALIGN_LEFT, Rectangle.LEFT + Rectangle.RIGHT, 5);
                    table.addCell(grcell);
                    grcell = createCell(
                            Double.toString(mode == StaticValues.AUTONUM_GOODSRECEIPT
                                    ? row.getInventory().getQuantity()
                                    : row1.getQuantity())
                                    + " "
                                    + (mode != StaticValues.AUTONUM_BILLINGGOODSRECEIPT
                                            ? (row.getInventory().getProduct().getUnitOfMeasure() == null ? ""
                                                    : row.getInventory().getProduct().getUnitOfMeasure()
                                                            .getName())
                                            : ""),
                            fontSmallRegular, Element.ALIGN_CENTER, Rectangle.LEFT + Rectangle.RIGHT, 5);
                    table.addCell(grcell);
                    grcell = createCell(
                            authHandlerDAOObj.getFormattedCurrency(
                                    mode == StaticValues.AUTONUM_GOODSRECEIPT ? row.getRate() : row1.getRate(),
                                    rowCurrenctID),
                            fontSmallRegular, Element.ALIGN_RIGHT, Rectangle.LEFT + Rectangle.RIGHT, 5);
                    table.addCell(grcell);
                    grcell = calculateDiscount(
                            mode == StaticValues.AUTONUM_GOODSRECEIPT ? row.getDiscount() : row1.getDiscount(),
                            rowCurrenctID);
                    grcell.setHorizontalAlignment(Element.ALIGN_RIGHT);
                    grcell.setPadding(5);
                    grcell.setBorder(Rectangle.LEFT + Rectangle.RIGHT);
                    table.addCell(grcell);
                    double amount1 = mode == StaticValues.AUTONUM_GOODSRECEIPT
                            ? row.getRate() * row.getInventory().getQuantity()
                            : row1.getRate() * row1.getQuantity();
                    Discount disc = mode == StaticValues.AUTONUM_GOODSRECEIPT ? row.getDiscount()
                            : row1.getDiscount();
                    if (disc != null) {
                        amount1 -= mode == StaticValues.AUTONUM_GOODSRECEIPT
                                ? row.getDiscount().getDiscountValue()
                                : row1.getDiscount().getDiscountValue();
                    }

                    double rowTaxPercent = 0;
                    HashMap<String, Object> requestParams = AccountingManager.getGlobalParams(request);
                    if (row != null && row.getTax() != null) {
                        requestParams.put("transactiondate",
                                row.getGoodsReceipt().getJournalEntry().getEntryDate());
                        requestParams.put("taxid", row.getTax().getID());
                        KwlReturnObject result = accTaxObj.getTax(requestParams);
                        List taxList = result.getEntityList();
                        Object[] taxObj = (Object[]) taxList.get(0);
                        rowTaxPercent = taxObj[1] == null ? 0 : (Double) taxObj[1];
                    } else if (row1 != null && row1.getTax() != null) {
                        requestParams.put("transactiondate",
                                row1.getBillingGoodsReceipt().getJournalEntry().getEntryDate());
                        requestParams.put("taxid", row1.getTax().getID());
                        KwlReturnObject result = accTaxObj.getTax(requestParams);
                        List taxList = result.getEntityList();
                        Object[] taxObj = (Object[]) taxList.get(0);
                        rowTaxPercent = taxObj[1] == null ? 0 : (Double) taxObj[1];
                    }
                    grcell = createCell(
                            authHandlerDAOObj.getFormattedCurrency(amount1 * rowTaxPercent / 100,
                                    rowCurrenctID),
                            fontSmallRegular, Element.ALIGN_RIGHT, Rectangle.LEFT + Rectangle.RIGHT, 5);
                    table.addCell(grcell);
                    amount1 += amount1 * rowTaxPercent / 100;
                    grcell = createCell(authHandlerDAOObj.getFormattedCurrency(amount1, rowCurrenctID),
                            fontSmallRegular, Element.ALIGN_RIGHT, Rectangle.LEFT + Rectangle.RIGHT, 5);
                    table.addCell(grcell);
                    total += amount1;
                    for (int j = 0; j < 98; j++) {
                        grcell = new PdfPCell(new Paragraph("", fontSmallRegular));
                        grcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                        grcell.setBorder(Rectangle.LEFT + Rectangle.RIGHT);
                        table.addCell(grcell);
                    }

                }
            }
            int length = isExpenseInv ? 4 : 5;
            for (int i = 0; i < length; i++) {
                grcell = new PdfPCell(new Paragraph("", fontSmallRegular));
                grcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                grcell.setBorder(Rectangle.TOP);
                table.addCell(grcell);
            }
            cell3 = createCell(
                    messageSource.getMessage("acc.rem.194", null, RequestContextUtils.getLocale(request)),
                    fontSmallBold, Element.ALIGN_LEFT, Rectangle.TOP, 5);
            table.addCell(cell3);
            cell3 = createCell(authHandlerDAOObj.getFormattedCurrency(total, rowCurrenctID), fontSmallRegular,
                    Element.ALIGN_RIGHT, 15, 5);
            table.addCell(cell3);
            for (int i = 0; i < length; i++) {
                grcell = new PdfPCell(new Paragraph("", fontSmallRegular));
                grcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                grcell.setPadding(5);
                grcell.setBorder(0);
                table.addCell(grcell);
            }
            cell3 = createCell(
                    messageSource.getMessage("acc.rem.195", null, RequestContextUtils.getLocale(request)),
                    fontSmallBold, Element.ALIGN_LEFT, 0, 5);
            table.addCell(cell3);
            grcell = calculateDiscount(
                    mode == StaticValues.AUTONUM_GOODSRECEIPT ? gr.getDiscount() : gr1.getDiscount(),
                    rowCurrenctID);
            grcell.setHorizontalAlignment(Element.ALIGN_RIGHT);
            grcell.setPadding(5);
            table.addCell(grcell);
            for (int i = 0; i < length; i++) {
                grcell = new PdfPCell(new Paragraph("", fontSmallRegular));
                grcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                grcell.setPadding(5);
                grcell.setBorder(0);
                table.addCell(grcell);
            }
            cell3 = createCell(
                    messageSource.getMessage("acc.rem.196", null, RequestContextUtils.getLocale(request)),
                    fontSmallBold, Element.ALIGN_LEFT, 0, 5);
            table.addCell(cell3);
            cell3 = createCell(
                    authHandlerDAOObj.getFormattedCurrency(
                            mode == StaticValues.AUTONUM_GOODSRECEIPT
                                    ? (gr.getTaxEntry() != null ? gr.getTaxEntry().getAmount() : 0)
                                    : (gr1.getTaxEntry() != null ? gr1.getTaxEntry().getAmount() : 0),
                            rowCurrenctID),
                    fontSmallRegular, Element.ALIGN_RIGHT, 15, 5);
            table.addCell(cell3);
            for (int i = 0; i < length; i++) {
                grcell = new PdfPCell(new Paragraph("", fontSmallRegular));
                grcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                grcell.setPadding(5);
                grcell.setBorder(0);
                table.addCell(grcell);
            }
            cell3 = createCell(
                    messageSource.getMessage("acc.rem.197", null, RequestContextUtils.getLocale(request)),
                    fontSmallBold, Element.ALIGN_LEFT, 0, 5);
            table.addCell(cell3);
            cell3 = createCell(
                    authHandlerDAOObj.getFormattedCurrency(
                            mode == StaticValues.AUTONUM_GOODSRECEIPT ? (gr.getVendorEntry().getAmount())
                                    : (gr1.getVendorEntry().getAmount()),
                            rowCurrenctID),
                    fontSmallRegular, Element.ALIGN_RIGHT, 15, 5);
            table.addCell(cell3);

            PdfPCell mainCell5 = new PdfPCell(table);
            mainCell5.setBorder(0);
            mainTable.addCell(mainCell5);
            KWLCurrency currency = (KWLCurrency) kwlCommonTablesDAOObj
                    .getClassObject(KWLCurrency.class.getName(), currencyid);
            double totalamount = 0;
            if (gr != null)
                totalamount = gr.getVendorEntry().getAmount();
            else if (gr1 != null)
                totalamount = gr1.getVendorEntry().getAmount();
            String netinword = EnglishNumberToWordsOjb.convert(Double.parseDouble(String.valueOf(totalamount)),
                    currency);
            String currencyname = currency.getName();
            cell3 = createCell(
                    messageSource.getMessage("acc.rem.177", null, RequestContextUtils.getLocale(request))
                            + " : " + currencyname + " " + netinword + " Only.",
                    fontSmallRegular, Element.ALIGN_LEFT,
                    Rectangle.LEFT + Rectangle.RIGHT + Rectangle.BOTTOM + Rectangle.TOP, 5);
            PdfPTable table2 = new PdfPTable(1);
            table2.addCell(cell3);
            PdfPCell mainCell62 = new PdfPCell(table2);
            mainCell62.setBorder(0);
            mainTable.addCell(mainCell62);
            PdfPTable helpTable = new PdfPTable(new float[] { 8, 92 });
            helpTable.setWidthPercentage(100);
            Phrase phrase1 = new Phrase(
                    messageSource.getMessage("acc.common.memo", null, RequestContextUtils.getLocale(request))
                            + ":  ",
                    fontSmallBold);
            Phrase phrase2 = new Phrase(
                    mode == StaticValues.AUTONUM_GOODSRECEIPT ? gr.getMemo() : gr1.getMemo(), fontSmallRegular);
            PdfPCell pcell1 = new PdfPCell(phrase1);
            PdfPCell pcell2 = new PdfPCell(phrase2);
            pcell1.setBorder(0);
            pcell1.setPadding(10);
            pcell1.setPaddingRight(0);
            pcell2.setBorder(0);
            pcell2.setPadding(10);
            helpTable.addCell(pcell1);
            helpTable.addCell(pcell2);

            PdfPCell mainCell61 = new PdfPCell(helpTable);
            mainCell61.setBorder(0);
            mainTable.addCell(mainCell61);

        } else if (mode == StaticValues.AUTONUM_RECEIPT || mode == StaticValues.AUTONUM_BILLINGRECEIPT) {

            Receipt rc = null;
            BillingReceipt rc1 = null;
            if (mode != StaticValues.AUTONUM_BILLINGRECEIPT) {
                rc = (Receipt) kwlCommonTablesDAOObj.getClassObject(Receipt.class.getName(), billid);
            } else {
                rc1 = (BillingReceipt) kwlCommonTablesDAOObj.getClassObject(BillingReceipt.class.getName(),
                        billid);
            }

            KWLCurrency currency = (KWLCurrency) kwlCommonTablesDAOObj
                    .getClassObject(KWLCurrency.class.getName(), currencyid);
            Company com = mode != StaticValues.AUTONUM_BILLINGRECEIPT ? rc.getCompany() : rc1.getCompany();
            String company[] = new String[3];
            company[0] = com.getCompanyName();
            company[1] = com.getAddress();
            company[2] = com.getEmailID();

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

            tab1 = addCompanyLogo(logoPath, com);

            tab3 = new PdfPTable(1);
            tab3.setWidthPercentage(100);
            PdfPCell mainCell1 = null;
            mainCell1 = createCell(com.getCompanyName(), fontMediumBold, Element.ALIGN_LEFT, 0, 0);
            mainCell1.setPaddingLeft(125);
            tab3.addCell(mainCell1);
            mainCell1 = createCell(com.getAddress(), fontSmallRegular, Element.ALIGN_LEFT, 0, 0);
            mainCell1.setPaddingLeft(75);
            tab3.addCell(mainCell1);
            mainCell1 = createCell(com.getEmailID(), fontSmallRegular, Element.ALIGN_LEFT, 0, 0);
            mainCell1.setPaddingLeft(75);
            tab3.addCell(mainCell1);
            mainCell1 = createCell(com.getPhoneNumber(), fontSmallRegular, Element.ALIGN_LEFT, 0, 0);
            mainCell1.setPaddingLeft(75);
            tab3.addCell(mainCell1);
            mainCell1 = new PdfPCell(tab1);
            mainCell1.setBorder(0);
            table1.addCell(mainCell1);
            mainCell1 = new PdfPCell(tab3);
            mainCell1.setBorder(0);
            table1.addCell(mainCell1);

            mainCell1 = new PdfPCell(table1);
            mainCell1.setBorder(0);
            mainTable.addCell(mainCell1);

            blankTable = addBlankLine(5);
            blankCell = new PdfPCell(blankTable);
            blankCell.setBorder(0);
            mainTable.addCell(blankCell);

            PdfPCell mainCell2 = createCell(
                    messageSource.getMessage("acc.numb.37", null, RequestContextUtils.getLocale(request)),
                    fontMediumBold, Element.ALIGN_CENTER, 0, 0);
            mainTable.addCell(mainCell2);

            blankTable = addBlankLine(2);
            blankCell = new PdfPCell(blankTable);
            blankCell.setBorder(0);
            mainTable.addCell(blankCell);

            tab3 = new PdfPTable(2);
            tab3.setWidthPercentage(100);
            tab3.setWidths(new float[] { 60, 40 });

            tab1 = new PdfPTable(2);
            tab1.setWidthPercentage(100);
            tab1.setWidths(new float[] { 10, 90 });

            PdfPCell cell3 = createCell(
                    messageSource.getMessage("acc.msgbox.no", null, RequestContextUtils.getLocale(request))
                            + " : ",
                    fontSmallRegular, Element.ALIGN_LEFT, 0, 0);
            new PdfPCell(new Paragraph());
            tab1.addCell(cell3);
            cell3 = createCell(mode != StaticValues.AUTONUM_BILLINGRECEIPT ? rc.getReceiptNumber()
                    : rc1.getBillingReceiptNumber(), fontSmallBold, Element.ALIGN_LEFT, 0, 0);
            tab1.addCell(cell3);
            tab2 = new PdfPTable(2);
            tab2.setWidthPercentage(100);
            tab2.setWidths(new float[] { 30, 70 });
            cell3 = createCell(
                    messageSource.getMessage("acc.numb.38", null, RequestContextUtils.getLocale(request)),
                    fontSmallRegular, Element.ALIGN_RIGHT, 0, 0);
            tab2.addCell(cell3);
            cell3 = createCell(
                    formatter.format(
                            mode != StaticValues.AUTONUM_BILLINGRECEIPT ? rc.getJournalEntry().getEntryDate()
                                    : rc1.getJournalEntry().getEntryDate()),
                    fontSmallBold, Element.ALIGN_LEFT, 0, 0);
            tab2.addCell(cell3);

            PdfPCell mainCell3 = new PdfPCell(tab1);
            mainCell3.setBorder(0);
            tab3.addCell(mainCell3);
            mainCell3 = new PdfPCell(tab2);
            mainCell3.setBorder(0);
            tab3.addCell(mainCell3);

            PdfPCell mainCell4 = new PdfPCell(tab3);
            mainCell4.setBorder(0);
            mainTable.addCell(mainCell4);

            blankTable = addBlankLine(5);
            blankCell = new PdfPCell(blankTable);
            blankCell.setBorder(0);
            mainTable.addCell(blankCell);
            tab2 = new PdfPTable(2);
            tab2.setWidthPercentage(100);
            tab2.setWidths(new float[] { 75, 25 });
            cell3 = new PdfPCell(new Paragraph(
                    messageSource.getMessage("acc.report.2", null, RequestContextUtils.getLocale(request)),
                    fontSmallBold));
            cell3.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell3.setBackgroundColor(Color.lightGray);
            cell3.setBorder(Rectangle.LEFT + Rectangle.BOTTOM + Rectangle.RIGHT);
            tab2.addCell(cell3);
            cell3 = new PdfPCell(new Paragraph(
                    messageSource.getMessage("acc.rem.193", null, RequestContextUtils.getLocale(request)),
                    fontSmallBold));
            cell3.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell3.setBackgroundColor(Color.lightGray);
            cell3.setBorder(Rectangle.RIGHT + Rectangle.BOTTOM);
            tab2.addCell(cell3);
            cell3 = createCell(
                    messageSource.getMessage("acc.je.acc", null, RequestContextUtils.getLocale(request))
                            + " : ",
                    fontSmallRegular, Element.ALIGN_LEFT, Rectangle.LEFT + Rectangle.RIGHT, 5);
            tab2.addCell(cell3);
            cell3 = createCell("", fontSmallBold, Element.ALIGN_LEFT, Rectangle.RIGHT, 0);
            tab2.addCell(cell3);
            cell3 = createCell(accname, fontSmallRegular, Element.ALIGN_LEFT, Rectangle.LEFT + Rectangle.RIGHT,
                    0);
            cell3.setPaddingLeft(50);
            tab2.addCell(cell3);
            cell3 = createCell(authHandlerDAOObj.getFormattedCurrency(amount, currencyid), fontSmallRegular,
                    Element.ALIGN_RIGHT, Rectangle.RIGHT, 15);
            tab2.addCell(cell3);
            cell3 = createCell(address, fontSmallRegular, Element.ALIGN_LEFT, Rectangle.LEFT + Rectangle.RIGHT,
                    0);
            cell3.setPaddingLeft(50);
            tab2.addCell(cell3);
            cell3 = createCell("", fontSmallRegular, Element.ALIGN_RIGHT, Rectangle.RIGHT, 0);
            tab2.addCell(cell3);

            for (int i = 0; i < 30; i++) {
                cell3 = new PdfPCell(new Paragraph("", fontSmallRegular));
                cell3.setBorder(Rectangle.LEFT + Rectangle.RIGHT);
                tab2.addCell(cell3);
            }
            cell3 = createCell(
                    messageSource.getMessage("acc.numb.42", null, RequestContextUtils.getLocale(request)),
                    fontSmallRegular, Element.ALIGN_LEFT, Rectangle.LEFT + Rectangle.RIGHT, 5);
            tab2.addCell(cell3);
            cell3 = createCell("", fontSmallRegular, Element.ALIGN_RIGHT, Rectangle.RIGHT, 0);
            tab2.addCell(cell3);
            cell3 = createCell(
                    mode != StaticValues.AUTONUM_BILLINGRECEIPT
                            ? (rc.getPayDetail() == null ? "Cash"
                                    : rc.getPayDetail().getPaymentMethod().getMethodName())
                            : (rc1.getPayDetail() == null ? "Cash"
                                    : rc1.getPayDetail().getPaymentMethod().getMethodName()),
                    fontSmallRegular, Element.ALIGN_LEFT, Rectangle.LEFT + Rectangle.RIGHT, 5);
            cell3.setPaddingLeft(50);
            tab2.addCell(cell3);
            cell3 = createCell("", fontSmallRegular, Element.ALIGN_CENTER, Rectangle.RIGHT, 0);
            tab2.addCell(cell3);
            cell3 = createCell(
                    mode != StaticValues.AUTONUM_BILLINGRECEIPT
                            ? (rc.getPayDetail() != null
                                    ? (rc.getPayDetail().getPaymentMethod().getMethodName().equals("Cheque")
                                            ? "Cheque No : " + rc.getPayDetail().getCheque().getChequeNo()
                                                    + " and Bank Name : "
                                                    + rc.getPayDetail().getCheque().getBankName()
                                            : "")
                                    : "")
                            : (rc1.getPayDetail() != null
                                    ? (rc1.getPayDetail().getPaymentMethod().getMethodName().equals("Cheque")
                                            ? "Cheque No : " + rc1.getPayDetail().getCheque().getChequeNo()
                                                    + " and Bank Name : "
                                                    + rc1.getPayDetail().getCheque().getBankName()
                                            : "")
                                    : ""),
                    fontSmallRegular, Element.ALIGN_LEFT, Rectangle.LEFT + Rectangle.RIGHT, 5);
            cell3.setPaddingLeft(50);
            tab2.addCell(cell3);
            cell3 = createCell("", fontSmallRegular, Element.ALIGN_CENTER, Rectangle.RIGHT, 0);
            tab2.addCell(cell3);
            String str = "";
            if (mode != StaticValues.AUTONUM_BILLINGRECEIPT) {
                if (rc.getPayDetail() != null)
                    if (rc.getPayDetail().getPaymentMethod().getDetailType() == 2
                            || rc.getPayDetail().getPaymentMethod().getDetailType() == 1)
                        if (rc.getPayDetail().getCard() != null)
                            str = "Card No : " + (rc.getPayDetail().getCard().getCardNo())
                                    + " and Card Holder : " + rc.getPayDetail().getCard().getCardHolder();
                        else if (rc.getPayDetail().getCheque() != null)
                            str = "Bank Name : " + (rc.getPayDetail().getCheque().getBankName())
                                    + "and Ref. No : " + (rc.getPayDetail().getCheque().getChequeNo());
            } else if (rc1.getPayDetail() != null)
                if (rc1.getPayDetail().getPaymentMethod().getDetailType() == 2
                        || rc1.getPayDetail().getPaymentMethod().getDetailType() == 1)
                    if (rc1.getPayDetail().getCard() != null)
                        str = "Card No : " + (rc1.getPayDetail().getCard().getCardNo()) + " and Card Holder : "
                                + rc1.getPayDetail().getCard().getCardHolder();
                    else if (rc1.getPayDetail().getCheque() != null)
                        str = "Bank Name : " + (rc1.getPayDetail().getCheque().getBankName()) + "and Ref. No : "
                                + (rc1.getPayDetail().getCheque().getChequeNo());

            //                mode!=StaticValues.AUTONUM_BILLINGRECEIPT?(rc.getPayDetail()!=null?(rc.getPayDetail().getPaymentMethod().getMethodName().equals("Credit Card")||customer.equals("Debit Card")?
            //                        rc.getPayDetail().getCard()!=null?"Card No : "+(rc.getPayDetail().getCard().getCardNo()+" and Card Holder : "+rc.getPayDetail().getCard().getCardHolder()):"":""):""):
            //                        (rc1.getPayDetail()!=null?(rc1.getPayDetail().getPaymentMethod().getMethodName().equals("Credit Card")||customer.equals("Debit Card")?
            //                        rc1.getPayDetail().getCard()!=null?"Card No : "+(rc1.getPayDetail().getCard().getCardNo()+" and Card Holder : "+rc1.getPayDetail().getCard().getCardHolder()):"":""):"")

            cell3 = createCell(str, fontSmallRegular, Element.ALIGN_LEFT, Rectangle.LEFT + Rectangle.RIGHT, 5);
            cell3.setPaddingLeft(50);
            tab2.addCell(cell3);
            cell3 = createCell("", fontSmallRegular, Element.ALIGN_CENTER, Rectangle.RIGHT, 0);
            tab2.addCell(cell3);
            cell3 = createCell(
                    messageSource.getMessage("acc.numb.41", null, RequestContextUtils.getLocale(request)),
                    fontSmallRegular, Element.ALIGN_LEFT, Rectangle.LEFT + Rectangle.RIGHT, 5);
            tab2.addCell(cell3);
            cell3 = createCell("", fontSmallRegular, Element.ALIGN_RIGHT, Rectangle.RIGHT, 5);
            tab2.addCell(cell3);
            cell3 = createCell(mode != StaticValues.AUTONUM_BILLINGRECEIPT ? rc.getMemo() : rc1.getMemo(),
                    fontSmallRegular, Element.ALIGN_LEFT, Rectangle.LEFT + Rectangle.RIGHT, 5);
            cell3.setPaddingLeft(50);
            tab2.addCell(cell3);
            cell3 = createCell("", fontSmallRegular, Element.ALIGN_CENTER, Rectangle.RIGHT, 5);
            tab2.addCell(cell3);
            String netinword = EnglishNumberToWordsOjb.convert(Double.parseDouble(String.valueOf(amount)),
                    currency);
            String currencyname = currency.getName();
            cell3 = createCell(
                    messageSource.getMessage("acc.rem.177", null, RequestContextUtils.getLocale(request))
                            + " : " + currencyname + " " + netinword + " Only.",
                    fontSmallRegular, Element.ALIGN_LEFT,
                    Rectangle.LEFT + Rectangle.RIGHT + Rectangle.BOTTOM + Rectangle.TOP, 5);
            tab2.addCell(cell3);
            cell3 = createCell(authHandlerDAOObj.getFormattedCurrency(amount, currencyid), fontSmallRegular,
                    Element.ALIGN_RIGHT, Rectangle.LEFT + Rectangle.RIGHT + Rectangle.BOTTOM + Rectangle.TOP,
                    5);
            tab2.addCell(cell3);
            PdfPCell mainCell5 = new PdfPCell(tab2);
            mainCell5.setBorder(1);
            mainTable.addCell(mainCell5);

            blankTable = addBlankLine(25);
            blankCell = new PdfPCell(blankTable);
            blankCell.setBorder(0);
            mainTable.addCell(blankCell);

            tab1 = new PdfPTable(2);
            tab1.setWidthPercentage(100);
            tab1.setWidths(new float[] { 50, 50 });
            cell3 = createCell(
                    messageSource.getMessage("acc.numb.35", null, RequestContextUtils.getLocale(request)),
                    fontTblMediumBold, Element.ALIGN_CENTER, 0, 0);
            tab1.addCell(cell3);
            cell3 = createCell(
                    messageSource.getMessage("acc.numb.36", null, RequestContextUtils.getLocale(request)),
                    fontTblMediumBold, Element.ALIGN_CENTER, 0, 0);
            tab1.addCell(cell3);
            PdfPCell mainCell6 = new PdfPCell(tab1);
            mainCell6.setPadding(5);
            mainCell6.setBorder(0);
            mainTable.addCell(mainCell6);

            blankTable = addBlankLine(15);
            blankCell = new PdfPCell(blankTable);
            blankCell.setBorder(0);
            mainTable.addCell(blankCell);

            tab2 = new PdfPTable(2);
            tab2.setWidthPercentage(100);
            tab2.setWidths(new float[] { 50, 50 });
            cell3 = createCell(
                    messageSource.getMessage("acc.numb.39", null, RequestContextUtils.getLocale(request)),
                    fontTblMediumBold, Element.ALIGN_CENTER, 0, 0);
            tab2.addCell(cell3);
            cell3 = createCell(
                    messageSource.getMessage("acc.numb.40", null, RequestContextUtils.getLocale(request)),
                    fontTblMediumBold, Element.ALIGN_CENTER, 0, 0);
            tab2.addCell(cell3);
            PdfPCell mainCell7 = new PdfPCell(tab2);
            mainCell7.setPadding(5);
            mainCell7.setBorder(0);
            mainTable.addCell(mainCell7);
            blankTable = addBlankLine(5);
            blankCell = new PdfPCell(blankTable);
            blankCell.setBorder(0);
            mainTable.addCell(blankCell);

        } else if (mode == StaticValues.AUTONUM_PAYMENT || mode == StaticValues.AUTONUM_BILLINGPAYMENT) {
            Payment pc = null;
            BillingPayment pc1 = null;
            if (mode == StaticValues.AUTONUM_PAYMENT) {
                pc = (Payment) kwlCommonTablesDAOObj.getClassObject(Payment.class.getName(), billid);
            } else {
                pc1 = (BillingPayment) kwlCommonTablesDAOObj.getClassObject(BillingPayment.class.getName(),
                        billid);
            }
            KWLCurrency currency = (KWLCurrency) kwlCommonTablesDAOObj
                    .getClassObject(KWLCurrency.class.getName(), currencyid);
            Company com = mode == StaticValues.AUTONUM_PAYMENT ? pc.getCompany() : pc1.getCompany();
            String company[] = new String[3];
            company[0] = com.getCompanyName();
            company[1] = com.getAddress();
            company[2] = com.getEmailID();

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

            tab1 = addCompanyLogo(logoPath, com);

            tab3 = new PdfPTable(1);
            tab3.setWidthPercentage(100);
            PdfPCell mainCell1 = null;
            mainCell1 = createCell(com.getCompanyName(), fontMediumBold, Element.ALIGN_LEFT, 0, 0);
            mainCell1.setPaddingLeft(125);
            tab3.addCell(mainCell1);
            mainCell1 = createCell(com.getAddress(), fontSmallRegular, Element.ALIGN_LEFT, 0, 0);
            mainCell1.setPaddingLeft(75);
            tab3.addCell(mainCell1);
            mainCell1 = createCell(com.getEmailID(), fontSmallRegular, Element.ALIGN_LEFT, 0, 0);
            mainCell1.setPaddingLeft(75);
            tab3.addCell(mainCell1);
            mainCell1 = createCell(com.getPhoneNumber(), fontSmallRegular, Element.ALIGN_LEFT, 0, 0);
            mainCell1.setPaddingLeft(75);
            tab3.addCell(mainCell1);
            mainCell1 = new PdfPCell(tab1);
            mainCell1.setBorder(0);
            table1.addCell(mainCell1);
            mainCell1 = new PdfPCell(tab3);
            mainCell1.setBorder(0);
            table1.addCell(mainCell1);

            mainCell1 = new PdfPCell(table1);
            mainCell1.setBorder(0);
            mainTable.addCell(mainCell1);

            blankTable = addBlankLine(5);
            blankCell = new PdfPCell(blankTable);
            blankCell.setBorder(0);
            mainTable.addCell(blankCell);

            PdfPCell mainCell2 = createCell(
                    messageSource.getMessage("acc.numb.37", null, RequestContextUtils.getLocale(request)),
                    fontMediumBold, Element.ALIGN_CENTER, 0, 0);
            mainTable.addCell(mainCell2);

            blankTable = addBlankLine(2);
            blankCell = new PdfPCell(blankTable);
            blankCell.setBorder(0);
            mainTable.addCell(blankCell);

            tab3 = new PdfPTable(2);
            tab3.setWidthPercentage(100);
            tab3.setWidths(new float[] { 60, 40 });

            tab1 = new PdfPTable(2);
            tab1.setWidthPercentage(100);
            tab1.setWidths(new float[] { 10, 90 });

            PdfPCell cell3 = createCell(
                    messageSource.getMessage("acc.msgbox.no", null, RequestContextUtils.getLocale(request))
                            + " : ",
                    fontSmallRegular, Element.ALIGN_LEFT, 0, 0);
            new PdfPCell(new Paragraph());
            tab1.addCell(cell3);
            cell3 = createCell(mode == StaticValues.AUTONUM_PAYMENT ? pc.getPaymentNumber()
                    : pc1.getBillingPaymentNumber(), fontSmallBold, Element.ALIGN_LEFT, 0, 0);
            tab1.addCell(cell3);
            tab2 = new PdfPTable(2);
            tab2.setWidthPercentage(100);
            tab2.setWidths(new float[] { 30, 70 });
            cell3 = createCell(
                    messageSource.getMessage("acc.numb.38", null, RequestContextUtils.getLocale(request)),
                    fontSmallRegular, Element.ALIGN_RIGHT, 0, 0);
            tab2.addCell(cell3);
            cell3 = createCell(
                    formatter.format(mode == StaticValues.AUTONUM_PAYMENT ? pc.getJournalEntry().getEntryDate()
                            : pc1.getJournalEntry().getEntryDate()),
                    fontSmallBold, Element.ALIGN_LEFT, 0, 0);
            tab2.addCell(cell3);

            PdfPCell mainCell3 = new PdfPCell(tab1);
            mainCell3.setBorder(0);
            tab3.addCell(mainCell3);
            mainCell3 = new PdfPCell(tab2);
            mainCell3.setBorder(0);
            tab3.addCell(mainCell3);

            PdfPCell mainCell4 = new PdfPCell(tab3);
            mainCell4.setBorder(0);
            mainTable.addCell(mainCell4);

            blankTable = addBlankLine(5);
            blankCell = new PdfPCell(blankTable);
            blankCell.setBorder(0);
            mainTable.addCell(blankCell);
            tab2 = new PdfPTable(2);
            tab2.setWidthPercentage(100);
            tab2.setWidths(new float[] { 75, 25 });
            cell3 = new PdfPCell(new Paragraph(
                    messageSource.getMessage("acc.report.2", null, RequestContextUtils.getLocale(request)),
                    fontSmallBold));
            cell3.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell3.setBackgroundColor(Color.lightGray);
            cell3.setBorder(Rectangle.LEFT + Rectangle.BOTTOM + Rectangle.RIGHT);
            tab2.addCell(cell3);
            cell3 = new PdfPCell(new Paragraph(
                    messageSource.getMessage("acc.rem.193", null, RequestContextUtils.getLocale(request)),
                    fontSmallBold));
            cell3.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell3.setBackgroundColor(Color.lightGray);
            cell3.setBorder(Rectangle.RIGHT + Rectangle.BOTTOM);
            tab2.addCell(cell3);
            cell3 = createCell(
                    messageSource.getMessage("acc.rem.193", null, RequestContextUtils.getLocale(request))
                            + " : ",
                    fontSmallRegular, Element.ALIGN_LEFT, Rectangle.LEFT + Rectangle.RIGHT, 5);
            tab2.addCell(cell3);
            cell3 = createCell("", fontSmallBold, Element.ALIGN_LEFT, Rectangle.RIGHT, 0);
            tab2.addCell(cell3);
            cell3 = createCell(accname, fontSmallRegular, Element.ALIGN_LEFT, Rectangle.LEFT + Rectangle.RIGHT,
                    0);
            cell3.setPaddingLeft(50);
            tab2.addCell(cell3);
            cell3 = createCell(authHandlerDAOObj.getFormattedCurrency(amount, currencyid), fontSmallRegular,
                    Element.ALIGN_RIGHT, Rectangle.RIGHT, 5);
            tab2.addCell(cell3);
            cell3 = createCell(address, fontSmallRegular, Element.ALIGN_LEFT, Rectangle.LEFT + Rectangle.RIGHT,
                    0);
            cell3.setPaddingLeft(50);
            tab2.addCell(cell3);
            cell3 = createCell("", fontSmallRegular, Element.ALIGN_RIGHT, Rectangle.RIGHT, 0);
            tab2.addCell(cell3);

            for (int i = 0; i < 30; i++) {
                cell3 = new PdfPCell(new Paragraph("", fontSmallRegular));
                cell3.setBorder(Rectangle.LEFT + Rectangle.RIGHT);
                tab2.addCell(cell3);
            }
            cell3 = createCell(
                    messageSource.getMessage("acc.numb.42", null, RequestContextUtils.getLocale(request)),
                    fontSmallRegular, Element.ALIGN_LEFT, Rectangle.LEFT + Rectangle.RIGHT, 5);
            tab2.addCell(cell3);
            cell3 = createCell("", fontSmallRegular, Element.ALIGN_RIGHT, Rectangle.RIGHT, 0);
            tab2.addCell(cell3);
            cell3 = createCell(
                    mode == StaticValues.AUTONUM_PAYMENT
                            ? (pc.getPayDetail() == null ? "Cash"
                                    : pc.getPayDetail().getPaymentMethod().getMethodName())
                            : (pc1.getPayDetail() == null ? "Cash"
                                    : pc1.getPayDetail().getPaymentMethod().getMethodName()),
                    fontSmallRegular, Element.ALIGN_LEFT, Rectangle.LEFT + Rectangle.RIGHT, 5);
            cell3.setPaddingLeft(50);
            tab2.addCell(cell3);
            cell3 = createCell("", fontSmallRegular, Element.ALIGN_CENTER, Rectangle.RIGHT, 0);
            tab2.addCell(cell3);
            cell3 = createCell(
                    mode == StaticValues.AUTONUM_PAYMENT
                            ? (pc.getPayDetail() != null
                                    ? (pc.getPayDetail().getPaymentMethod().getMethodName().equals("Cheque")
                                            ? "Cheque No : " + pc.getPayDetail().getCheque().getChequeNo()
                                                    + " and Bank Name : "
                                                    + pc.getPayDetail().getCheque().getBankName()
                                            : "")
                                    : "")
                            : (pc1.getPayDetail() != null
                                    ? (pc1.getPayDetail().getPaymentMethod().getMethodName().equals("Cheque")
                                            ? "Cheque No : " + pc1.getPayDetail().getCheque().getChequeNo()
                                                    + " and Bank Name : "
                                                    + pc1.getPayDetail().getCheque().getBankName()
                                            : "")
                                    : ""),
                    fontSmallRegular, Element.ALIGN_LEFT, Rectangle.LEFT + Rectangle.RIGHT, 5);
            cell3.setPaddingLeft(50);
            tab2.addCell(cell3);
            cell3 = createCell("", fontSmallRegular, Element.ALIGN_CENTER, Rectangle.RIGHT, 0);
            tab2.addCell(cell3);
            String str = "";

            if (mode == StaticValues.AUTONUM_PAYMENT) {
                if (pc.getPayDetail() != null)
                    if (pc.getPayDetail().getPaymentMethod().getDetailType() == 2
                            || pc.getPayDetail().getPaymentMethod().getDetailType() == 1)
                        if (pc.getPayDetail().getCard() != null)
                            str = "Card No : " + (pc.getPayDetail().getCard().getCardNo())
                                    + " and Card Holder : " + pc.getPayDetail().getCard().getCardHolder();
                        else if (pc.getPayDetail().getCheque() != null)
                            str = "Bank Name : " + (pc.getPayDetail().getCheque().getBankName())
                                    + "and Ref. No : " + (pc.getPayDetail().getCheque().getChequeNo());
            } else if (pc1.getPayDetail() != null)
                if (pc1.getPayDetail().getPaymentMethod().getDetailType() == 2
                        || pc1.getPayDetail().getPaymentMethod().getDetailType() == 1)
                    if (pc1.getPayDetail().getCard() != null)
                        str = "Card No : " + (pc1.getPayDetail().getCard().getCardNo()) + " and Card Holder : "
                                + pc1.getPayDetail().getCard().getCardHolder();
                    else if (pc1.getPayDetail().getCheque() != null)
                        str = "Bank Name : " + (pc1.getPayDetail().getCheque().getBankName()) + "and Ref. No : "
                                + (pc1.getPayDetail().getCheque().getChequeNo());
            cell3 = createCell(str, fontSmallRegular, Element.ALIGN_LEFT, Rectangle.LEFT + Rectangle.RIGHT, 5);
            cell3.setPaddingLeft(50);
            tab2.addCell(cell3);
            cell3 = createCell("", fontSmallRegular, Element.ALIGN_CENTER, Rectangle.RIGHT, 0);
            tab2.addCell(cell3);
            cell3 = createCell(
                    messageSource.getMessage("acc.numb.41", null, RequestContextUtils.getLocale(request)),
                    fontSmallRegular, Element.ALIGN_LEFT, Rectangle.LEFT + Rectangle.RIGHT, 5);
            tab2.addCell(cell3);
            cell3 = createCell("", fontSmallRegular, Element.ALIGN_RIGHT, Rectangle.RIGHT, 5);
            tab2.addCell(cell3);
            cell3 = createCell(mode == StaticValues.AUTONUM_PAYMENT ? pc.getMemo() : pc1.getMemo(),
                    fontSmallRegular, Element.ALIGN_LEFT, Rectangle.LEFT + Rectangle.RIGHT, 5);
            cell3.setPaddingLeft(50);
            tab2.addCell(cell3);
            cell3 = createCell("", fontSmallRegular, Element.ALIGN_CENTER, Rectangle.RIGHT, 5);
            tab2.addCell(cell3);
            String netinword = EnglishNumberToWordsOjb.convert(Double.parseDouble(String.valueOf(amount)),
                    currency);
            String currencyname = currency.getName();
            cell3 = createCell(
                    messageSource.getMessage("acc.rem.177", null, RequestContextUtils.getLocale(request)) + " "
                            + currencyname + " " + netinword + " Only.",
                    fontSmallRegular, Element.ALIGN_LEFT,
                    Rectangle.LEFT + Rectangle.RIGHT + Rectangle.BOTTOM + Rectangle.TOP, 5);
            tab2.addCell(cell3);
            cell3 = createCell(authHandlerDAOObj.getFormattedCurrency(amount, currencyid), fontSmallRegular,
                    Element.ALIGN_RIGHT, Rectangle.LEFT + Rectangle.RIGHT + Rectangle.BOTTOM + Rectangle.TOP,
                    5);
            tab2.addCell(cell3);
            PdfPCell mainCell5 = new PdfPCell(tab2);
            mainCell5.setBorder(1);
            mainTable.addCell(mainCell5);

            blankTable = addBlankLine(25);
            blankCell = new PdfPCell(blankTable);
            blankCell.setBorder(0);
            mainTable.addCell(blankCell);

            tab1 = new PdfPTable(2);
            tab1.setWidthPercentage(100);
            tab1.setWidths(new float[] { 50, 50 });
            cell3 = createCell(
                    messageSource.getMessage("acc.numb.35", null, RequestContextUtils.getLocale(request)),
                    fontTblMediumBold, Element.ALIGN_CENTER, 0, 0);
            tab1.addCell(cell3);
            cell3 = createCell(
                    messageSource.getMessage("acc.numb.36", null, RequestContextUtils.getLocale(request)),
                    fontTblMediumBold, Element.ALIGN_CENTER, 0, 0);
            tab1.addCell(cell3);
            PdfPCell mainCell6 = new PdfPCell(tab1);
            mainCell6.setPadding(5);
            mainCell6.setBorder(0);
            mainTable.addCell(mainCell6);

            blankTable = addBlankLine(15);
            blankCell = new PdfPCell(blankTable);
            blankCell.setBorder(0);
            mainTable.addCell(blankCell);

            tab2 = new PdfPTable(2);
            tab2.setWidthPercentage(100);
            tab2.setWidths(new float[] { 50, 50 });
            cell3 = createCell(
                    messageSource.getMessage("acc.numb.39", null, RequestContextUtils.getLocale(request)),
                    fontTblMediumBold, Element.ALIGN_CENTER, 0, 0);
            tab2.addCell(cell3);
            cell3 = createCell(
                    messageSource.getMessage("acc.numb.40", null, RequestContextUtils.getLocale(request)),
                    fontTblMediumBold, Element.ALIGN_CENTER, 0, 0);
            tab2.addCell(cell3);
            PdfPCell mainCell7 = new PdfPCell(tab2);
            mainCell7.setPadding(5);
            mainCell7.setBorder(0);
            mainTable.addCell(mainCell7);
            blankTable = addBlankLine(5);
            blankCell = new PdfPCell(blankTable);
            blankCell.setBorder(0);
            mainTable.addCell(blankCell);

        }

        document.add(mainTable);
        return baos;
    } catch (Exception ex) {
        throw ServiceException.FAILURE("Export:" + ex.getMessage(), ex);
    } finally {
        if (document != null) {
            document.close();
        }
        if (writer != null) {
            writer.close();
        }
        if (baos != null) {
            baos.close();
        }
    }

}

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

License:Open Source License

public void setHeaderFooter(Document doc, String headerText) {
    HeaderFooter footer = new HeaderFooter(
            new Phrase("  ", FontFactory.getFont("Helvetica", 8, Font.NORMAL, Color.BLACK)), true);
    footer.setBorderWidth(0);/*ww  w  .j  a v a 2 s.  co m*/
    footer.setBorderWidthTop(1);
    footer.setAlignment(HeaderFooter.ALIGN_RIGHT);
    doc.setFooter(footer);
    HeaderFooter header = new HeaderFooter(
            new Phrase(headerText, FontFactory.getFont("Helvetica", 14, Font.BOLD, Color.BLACK)), false);
    doc.setHeader(header);
}