Example usage for com.lowagie.text Document add

List of usage examples for com.lowagie.text Document add

Introduction

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

Prototype


public boolean add(Element element) throws DocumentException 

Source Link

Document

Adds an Element to the Document.

Usage

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

License:Open Source License

private ByteArrayOutputStream exportToPdf(Connection conn, HttpServletRequest request, String as) {
    JSONObject s = null;//w ww . java 2  s .c o  m
    ByteArrayOutputStream os = new ByteArrayOutputStream();
    try {
        s = new JSONObject(as);
        JSONArray head = s.getJSONArray("columnheader");
        JSONArray store = s.getJSONArray("data");
        String[] colwidth2 = new String[head.length() + 3];
        String[] colnm = { "info", "level", "flag" };
        for (int i = 0; i < colwidth2.length; i++) {
            if (i < 3)
                colwidth2[i] = colnm[i];
            else {
                if (head.getJSONObject(i - 3).has("0"))
                    colwidth2[i] = head.getJSONObject(i - 3).getString("0");
                else
                    colwidth2[i] = head.getJSONObject(i - 3).getString("1");
            }
        }
        int maxlevel = 0;
        for (int k = 0; k < store.length(); k++) {
            for (int j = 0; j < colwidth2.length; j++) {
                if (!store.getJSONObject(k).has(colwidth2[j]))
                    store.getJSONObject(k).put(colwidth2[j], "");
            }
            if (store.getJSONObject(k).getInt("level") > maxlevel)
                maxlevel = store.getJSONObject(k).getInt("level");
        }
        int len = colwidth2.length - 3;
        int p = 0;
        if (len <= 5)
            p = colwidth2.length;
        else
            p = 8;
        Document document = new Document(PageSize.A4, 15, 15, 15, 15);
        PdfWriter writer = PdfWriter.getInstance(document, os);
        writer.setPageEvent(new EndPage());
        getCompanyDetails(conn, request);
        getPageCount(3, p, 0, store.length(), store, colwidth2, maxlevel, document);
        prepare(document, FILTER_CENTER);
        document.add(new Paragraph("\u00a0"));
        addTable(3, p, 0, store.length(), store, colwidth2, maxlevel, document);
        document.close();
        writer.close();
        os.close();
    } catch (IOException ex) {
        Logger.getLogger(ExportReportServlet.class.getName()).log(Level.SEVERE, null, ex);
    } catch (DocumentException ex) {
        Logger.getLogger(ExportReportServlet.class.getName()).log(Level.SEVERE, null, ex);
    } catch (JSONException e) {

    }
    return os;
}

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

License:Open Source License

private static void prepare(Document d, HeaderFooter hfFooter) {
    PdfPTable table = new PdfPTable(1);
    try {//  ww w.java  2  s.co  m
        d.setFooter(hfFooter);
        d.open();
        imgPath = StorageHandler.GetProfileImgStorePath() + StorageHandler.GetFileSeparator() + imgPath;
        //                  imgPath = "/home/krawler-user/logo.jpg";                
        table.setHorizontalAlignment(Element.ALIGN_LEFT);
        table.setWidthPercentage(50);
        PdfPCell cell = null;
        try {
            Image img = Image.getInstance(imgPath);
            cell = new PdfPCell(img);
        } catch (Exception e) {
            cell = new PdfPCell(new Paragraph(companyName, fontBig));
        }
        cell.setBorder(0);
        cell.setHorizontalAlignment(Element.ALIGN_LEFT);
        table.addCell(cell);

        d.add(table);
    } catch (Exception e) {
        Logger.getLogger(ExportProjectReportServlet.class.getName()).log(Level.SEVERE, null, e);
    }
}

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

License:Open Source License

private static void addCenter(Document d) throws DocumentException {

    PdfPTable table = new PdfPTable(1);
    table.setHorizontalAlignment(Element.ALIGN_CENTER);

    table.setWidthPercentage(50);//from  w ww .  j  a  va2  s .  co m
    table.setSpacingBefore(10);
    PdfPCell cell = null;
    cell = new PdfPCell(new Paragraph(ProjectName, fontBold));
    cell.setBorder(0);
    cell.setBorderWidth(0);
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    table.addCell(cell);

    cell = new PdfPCell(new Paragraph(ReportName, fontRegular));
    cell.setBorder(0);
    cell.setBorderWidth(0);
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    table.addCell(cell);
    // For tasks which prompt user for a start and end date
    if (!(StringUtil.isNullOrEmpty(RepStartDate) && StringUtil.isNullOrEmpty(RepEndDate))) {
        cell = new PdfPCell(new Paragraph("From:" + RepStartDate + " To:" + RepEndDate, fontSmallRegular));
        cell.setBorder(0);
        cell.setBorderWidth(0);
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(cell);
    }
    table.setSpacingAfter(10);
    d.add(table);
}

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

License:Open Source License

private int addTable(int stcol, int stpcol, int strow, int stprow, JSONArray store, String[] colwidth2,
        int maxlevel, Document document) {
    float[] f = new float[(stpcol - stcol) + 1];
    for (int k = 0; k < f.length; k++) {
        f[k] = 20;//from ww w .j  av  a  2 s  . c o m
    }
    f[0] = f[0] + 10 * maxlevel;
    PdfPTable table = new PdfPTable(f);
    Font font = FontFactory.getFont("Helvetica", 8, Font.BOLD, Color.BLACK);
    Font font1 = FontFactory.getFont("Helvetica", 8, Font.NORMAL, Color.BLACK);
    Font f1;
    PdfPCell h2 = new PdfPCell(new Paragraph("", font)); // new
    h2.setBorder(0);
    h2.setPadding(1);
    //                h2.setHorizontalAlignment(Element.ALIGN_UNDEFINED);                                       
    // Paragraph(colwidth2[hcol],font);
    table.addCell(h2);
    int stpcol1 = 0;
    for (int hcol = stcol; hcol < stpcol; hcol++) {
        PdfPCell h1 = new PdfPCell(new Paragraph(colwidth2[hcol], font)); // new
        h1.setHorizontalAlignment(Element.ALIGN_RIGHT);
        h1.setBorder(0);
        h1.setPadding(1);
        // Paragraph(colwidth2[hcol],font);
        table.addCell(h1);
    }
    table.setHeaderRows(1);
    try {
        for (int row = strow; row < stprow; row++) {
            if (row % 62 == 61) {
                document.add(table);
                table.deleteBodyRows();
                table.setSkipFirstHeader(true);
            }
            if (store.getJSONObject(row).getBoolean("flag"))
                f1 = font;
            else
                f1 = font1;
            if (store.getJSONObject(row).getString("info").compareTo("") != 0) {
                h2 = new PdfPCell(new Paragraph(store.getJSONObject(row).getString("info"), f1));
                h2.setPaddingLeft((Integer.parseInt(store.getJSONObject(row).getString("level")) * 10) + 5);
            } else {
                h2 = new PdfPCell(new Paragraph(store.getJSONObject(row).getString("info"), f1));
                h2.setPaddingTop(9);
                h2.setPaddingLeft((Integer.parseInt(store.getJSONObject(row).getString("level")) * 10) + 5);
            }
            h2.setBorder(0);
            h2.setPadding(1);
            if (store.getJSONObject(row).getBoolean("flag"))
                h2.setHorizontalAlignment(Element.ALIGN_LEFT);
            else
                h2.setHorizontalAlignment(Element.ALIGN_RIGHT);
            h2.setVerticalAlignment(Element.ALIGN_CENTER);
            table.addCell(h2);
            for (int col = stcol; col < stpcol; col++) {
                Paragraph para = null;
                if (store.getJSONObject(row).has(colwidth2[col]))
                    para = new Paragraph(store.getJSONObject(row).getString(colwidth2[col]), f1);
                else
                    para = new Paragraph("", f1);
                //                    Paragraph para = new Paragraph(store.getJSONObject(row).getString(colwidth2[col]), f1);
                PdfPCell h1 = new PdfPCell(para);
                h1.setBorder(0);
                h1.setPadding(1);
                h1.setHorizontalAlignment(Element.ALIGN_RIGHT);
                h1.setVerticalAlignment(Element.ALIGN_CENTER);
                table.addCell(h1);
                //               table.addCell(new Paragraph(store.getJSONObject(row)
                //                     .getString(colwidth2[col]), f1));
            }

        }
        document.add(table);
        document.newPage();
        if (stpcol != colwidth2.length) {
            if ((colwidth2.length - stpcol) > 5) // column limit
                stpcol1 = stpcol + 5;
            else
                stpcol1 = (colwidth2.length - stpcol) + stpcol;
            addTable(stpcol, stpcol1, strow, stprow, store, colwidth2, maxlevel, document);
        }

    } catch (com.krawler.utils.json.base.JSONException j) {
        KrawlerLog.op.warn("Problem During Creating JSON Object :" + j.toString());
    } catch (com.lowagie.text.DocumentException de) {
        KrawlerLog.op.warn("Problem While Creating PDF :" + de.toString());
    }
    return stpcol;
}

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

License:Open Source License

private static void addComponyLogo(Document d, HttpServletRequest req)
        throws ConfigurationException, DocumentException {
    PdfPTable table = new PdfPTable(1);
    imgPath = StorageHandler.GetProfileImgStorePath() + "logo.gif";
    table.setHorizontalAlignment(Element.ALIGN_LEFT);
    table.setWidthPercentage(50);//from  w  w w. ja  va 2 s . c o  m
    PdfPCell cell = null;
    try {
        if (StringUtil.isStandAlone()) {
            imgPath = URLUtil.getPageURL(req, "").concat(defaultCompanyImgPath);
        }
        Image img = Image.getInstance(imgPath);
        cell = new PdfPCell(img);
    } catch (Exception e) {
        cell = new PdfPCell(new Paragraph(companyName, fontBig));
    }
    cell.setBorder(0);
    cell.setHorizontalAlignment(Element.ALIGN_LEFT);
    table.addCell(cell);
    d.add(table);
}

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

License:Open Source License

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

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

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

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

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

License:Open Source License

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

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

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

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

    return stpcol;
}

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

License:Open Source License

private ByteArrayOutputStream createForm(String currencyid, String[] header1, String[] header2,
        String[] header3, String[] header4, String[] values1, String[] values2, String[] values3,
        String[] values4, String string, Object ob, Company com, String contextpath, String logoPath,
        DateFormat formatter) throws JSONException, DocumentException, ServiceException, IOException {
    ByteArrayOutputStream baos = null;
    Document document = null;
    PdfWriter writer = null;/* w  ww. j  a va2  s . c o m*/
    try {
        String company[] = new String[3];
        company[0] = com.getCompanyName();
        company[1] = com.getAddress();
        company[2] = com.getEmailID();
        baos = new ByteArrayOutputStream();
        document = new Document(PageSize.A4, 15, 15, 15, 15);
        writer = PdfWriter.getInstance(document, baos);
        document.open();
        addHeaderFooter(document, writer);
        PdfPTable tab1 = null;
        PdfPTable tab2 = null;
        PdfPTable tab3 = null;

        /*-----------------------------Add Company Name in Center ------------------*/
        tab1 = new PdfPTable(1);
        tab1.setHorizontalAlignment(Element.ALIGN_LEFT);
        PdfPCell cell = new PdfPCell(new Paragraph(com.getCompanyName(), fontBig));
        cell.setHorizontalAlignment(Element.ALIGN_LEFT);
        cell.setBorder(0);
        tab1.addCell(cell);

        tab2 = new PdfPTable(1);
        tab2.setHorizontalAlignment(Element.ALIGN_LEFT);
        imgPath = logoPath;
        PdfPCell imgCell = null;
        try {
            Image img = Image.getInstance(imgPath);
            imgCell = new PdfPCell(img);
        } catch (Exception e) {
            imgCell = new PdfPCell(new Paragraph(com.getCompanyName(), fontBig));
        }
        imgCell.setHorizontalAlignment(Element.ALIGN_LEFT);
        imgCell.setBorder(0);
        tab2.addCell(imgCell);

        PdfPTable table = new PdfPTable(2);
        table.setWidthPercentage(100);
        table.setWidths(new float[] { 40, 60 });
        PdfPCell cellCompimg = new PdfPCell(tab2);
        cellCompimg.setBorder(0);
        table.addCell(cellCompimg);
        PdfPCell cellCompname = new PdfPCell(tab1);
        cellCompname.setBorder(0);
        table.addCell(cellCompname);
        document.add(table);
        document.add(new Paragraph("\n\n\n"));

        /*-----------------------------Add Company information and Invoice Info------------------*/
        PdfPTable table2 = new PdfPTable(3);
        table2.setWidthPercentage(100);
        if (header4.length != 0)
            table2.setWidths(new float[] { 40, 30, 30 });
        else
            table2.setWidths(new float[] { 50, 50, 0 });
        tab1 = getCompanyInfo(company);
        tab2 = createTable(header1, values1);
        PdfPCell cell1 = new PdfPCell(tab1);
        cell1.setBorder(0);
        table2.addCell(cell1);
        PdfPCell cell2 = new PdfPCell(tab2);
        cell2.setBorder(1);
        table2.addCell(cell2);
        PdfPCell cel = new PdfPCell();
        if (header4.length != 0) {
            tab3 = createTable(header4, values4);
            cel = new PdfPCell(tab3);
        } else
            cel = new PdfPCell(new Paragraph("", fontSmallRegular));
        cel.setBorder(1);
        table2.addCell(cel);
        document.add(table2);
        document.add(new Paragraph("\n\n\n"));

        /*-----------------------------Add BillTo Amount Enclosed -------------------------*/
        PdfPTable table3 = new PdfPTable(1);
        table3.setWidthPercentage(100);
        tab1 = createTable(header2, values2);
        PdfPCell cell3 = new PdfPCell(tab1);
        cell3.setBorder(1);
        table3.addCell(cell3);
        document.add(table3);
        document.add(new Paragraph("\n\n\n\n\n\n"));

        /*-----------------------------Add Cutting Line -------------------------*/
        PdfPTable table4 = new PdfPTable(1);
        imgPath = contextpath + "/images/pdf-cut.jpg";
        table4.setHorizontalAlignment(Element.ALIGN_LEFT);
        table4.setWidthPercentage(100);
        PdfPCell cell11 = null;
        try {
            Image img = Image.getInstance(imgPath);
            img.scalePercent(35);
            cell11 = new PdfPCell(img);
        } catch (Exception e) {
        }
        cell11.setBorder(0);
        table4.addCell(cell11);
        document.add(table4);
        document.add(new Paragraph("\n\n"));

        /*-----------------------------Add Product Information ------------------*/
        PdfPTable table5 = new PdfPTable(1);
        table5.setWidthPercentage(100);
        if (string.equals("GoodsReceipt")) {
            GoodsReceipt gr = (GoodsReceipt) ob;
            tab1 = createGoodsReceiptTable(header3, values3, currencyid, gr);
        } else if (string.equals("debit")) {
            DebitNote dn = (DebitNote) ob;
            tab1 = createDebitTable(header3, values3, currencyid, dn);
        } else if (string.equals("billingdebit")) {
            BillingDebitNote dn = (BillingDebitNote) ob;
            tab1 = createDebitTable(header3, values3, currencyid, dn);
        } else if (string.equals("credit")) {
            CreditNote cn = (CreditNote) ob;
            tab1 = createCreditTable(header3, values3, currencyid, cn);
        } else if (string.equals("billingcredit")) {
            BillingCreditNote cn = (BillingCreditNote) ob;
            tab1 = createCreditTable(header3, values3, currencyid, cn);
        } else if (string.equals("PurchaseOrder")) {
            PurchaseOrder po = (PurchaseOrder) ob;
            tab1 = createPurchaseOrderTable(header3, values3, currencyid, po);
        } else if (string.equals("BillingPurchaseOrder")) {
            BillingPurchaseOrder po = (BillingPurchaseOrder) ob;
            tab1 = createPurchaseOrderTable(header3, values3, currencyid, po);
        } else if (string.equals("SalesOrder")) {
            SalesOrder so = (SalesOrder) ob;
            tab1 = createSalesOrderTable(header3, values3, currencyid, so);
        } else if (string.equals("BillingSalesOrder")) {
            BillingSalesOrder so = (BillingSalesOrder) ob;
            tab1 = createSalesOrderTable(header3, values3, currencyid, so);
        } else if (string.equals("Payment")) {
            Payment pay = (Payment) ob;
            tab1 = createPaymentTable(header3, values3, currencyid, pay, formatter);
        } else if (string.equals("Quotation")) {
            Quotation quotation = (Quotation) ob;
            tab1 = createQuotationTable(header3, values3, currencyid, quotation);
        }
        PdfPCell cell5 = new PdfPCell(tab1);
        cell5.setBorder(1);
        table5.addCell(cell5);
        document.add(table5);
        document.add(new Paragraph("\n\n\n"));

        /*-----------------------------Download file ------------------*/
        return baos;
    } catch (Exception ex) {
        return null;
    } finally {
        if (document != null)
            document.close();
        if (writer != null)
            writer.close();
        if (baos != null)
            baos.close();
    }
}

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

License:Open Source License

public ByteArrayOutputStream exportRatioAnalysis(HttpServletRequest request, JSONObject jobj, String logoPath,
        String comName) throws DocumentException, ServiceException, IOException {
    ByteArrayOutputStream baos = null;
    double total = 0;
    Document document = null;
    PdfWriter writer = null;//from  ww  w  .  java 2 s . com
    try {
        //flag 1 = BalanceSheet , 2 = P&L

        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 tab1 = 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();

        //            addHeaderFooter(document, writer);

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

        PdfPCell blankCell = new PdfPCell();
        blankCell.setBorder(0);
        tab1 = addCompanyLogo(logoPath, comName);
        PdfPCell cell1 = new PdfPCell(tab1);
        cell1.setBorder(0);
        table1.addCell(cell1);
        table1.addCell(blankCell);
        table1.addCell(blankCell);
        table1.addCell(blankCell);

        PdfPCell cell2 = new PdfPCell(new Paragraph(comName, fontSmallRegular));
        cell2.setBorder(0);
        table1.addCell(cell2);
        table1.addCell(blankCell);
        table1.addCell(blankCell);
        table1.addCell(blankCell);

        PdfPCell headerCell = createCell(
                messageSource.getMessage("acc.ra.tabTT", null, RequestContextUtils.getLocale(request)),
                FontContext.TABLE_HEADER, Element.ALIGN_LEFT, 0, 5);
        headerCell.setBorder(0);
        table1.addCell(headerCell);
        table1.addCell(blankCell);
        table1.addCell(blankCell);
        table1.addCell(blankCell);

        table1.addCell(blankCell);
        table1.addCell(blankCell);
        table1.addCell(blankCell);
        table1.addCell(blankCell);

        JSONArray ObjArr = jobj.getJSONArray("data");

        PdfPCell HeaderCell1 = createCell(
                messageSource.getMessage("acc.ra.principalGroups", null,
                        RequestContextUtils.getLocale(request)),
                FontContext.SMALL_TEXT, Element.ALIGN_LEFT, 0, 5);
        HeaderCell1.setBorderWidthLeft(1);
        HeaderCell1.setBorderWidthBottom(1);
        HeaderCell1.setBorderWidthTop(1);
        PdfPCell HeaderCell2 = createCell(
                messageSource.getMessage("acc.ra.value", null, RequestContextUtils.getLocale(request)),
                FontContext.SMALL_TEXT, Element.ALIGN_RIGHT, 0, 5);
        HeaderCell2.setBorderWidthBottom(1);
        HeaderCell2.setBorderWidthTop(1);

        PdfPCell HeaderCell3 = createCell(
                messageSource.getMessage("acc.ra.principalRatios", null,
                        RequestContextUtils.getLocale(request)),
                FontContext.SMALL_TEXT, Element.ALIGN_LEFT, 0, 5);
        HeaderCell3.setBorderWidthBottom(1);
        HeaderCell3.setBorderWidthTop(1);
        HeaderCell3.setBorderWidthLeft(1);
        PdfPCell HeaderCell4 = createCell(
                messageSource.getMessage("acc.ra.value", null, RequestContextUtils.getLocale(request)),
                FontContext.SMALL_TEXT, Element.ALIGN_RIGHT, 0, 5);
        HeaderCell4.setBorderWidthBottom(1);
        HeaderCell4.setBorderWidthRight(1);
        HeaderCell4.setBorderWidthTop(1);
        table1.addCell(HeaderCell1);
        table1.addCell(HeaderCell2);
        table1.addCell(HeaderCell3);
        table1.addCell(HeaderCell4);
        PdfPCell objCell1 = null;
        PdfPCell objCell2 = null;
        PdfPCell objCell3 = null;
        PdfPCell objCell4 = null;
        int objArrLength = ObjArr.length();
        for (int i = 0; i < objArrLength; i++) {
            JSONObject leftObj = ObjArr.getJSONObject(i);
            objCell1 = createBalanceSheetCell(leftObj.getString("lname"), FontContext.TABLE_DATA,
                    Element.ALIGN_LEFT, 0, 5, 0);
            objCell2 = createBalanceSheetCell(leftObj.getString("lvalue"), FontContext.TABLE_DATA,
                    Element.ALIGN_RIGHT, 0, 0, 0);
            objCell3 = createBalanceSheetCell(leftObj.getString("rname"), FontContext.TABLE_DATA,
                    Element.ALIGN_LEFT, 0, 5, 0);
            objCell4 = createBalanceSheetCell(leftObj.getString("rvalue"), FontContext.TABLE_DATA,
                    Element.ALIGN_RIGHT, 0, 0, 0);
            objCell1.setBorderWidthLeft(1);
            objCell3.setBorderWidthLeft(1);
            objCell4.setBorderWidthRight(1);
            if (i != (objArrLength - 1)) {
                table1.addCell(objCell1);
                table1.addCell(objCell2);
                table1.addCell(objCell3);
                table1.addCell(objCell4);
            }
        }
        objCell1.setBorderWidthBottom(1);
        objCell2.setBorderWidthBottom(1);
        objCell3.setBorderWidthBottom(1);
        objCell4.setBorderWidthBottom(1);
        table1.addCell(objCell1);
        table1.addCell(objCell2);
        table1.addCell(objCell3);
        table1.addCell(objCell4);

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

        document.add(mainTable);
    } catch (Exception ex) {
        return null;
    } finally {
        if (document != null) {
            document.close();
        }
        if (writer != null) {
            writer.close();
        }
        if (baos != null) {
            baos.close();
        }
    }
    return baos;
}

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

License:Open Source License

public ByteArrayOutputStream exportBalanceSheetPdf(HttpServletRequest request, String currencyid,
        DateFormat formatter, String logoPath, String comName, JSONObject jobj, Date startDate, Date endDate,
        int flag, int toggle) throws DocumentException, ServiceException, IOException {
    ByteArrayOutputStream baos = null;
    double total = 0;
    Document document = null;
    PdfWriter writer = null;/* www. j  av a  2  s .  c  om*/
    try {
        //flag 1 = BalanceSheet , 2 = P&L

        String headingString = "";
        String DateheadingString = "";
        String value = "";
        String subHeading1 = "";
        String subHeading2 = "";
        if (flag == 1) {
            headingString = messageSource.getMessage("acc.rem.123", null,
                    RequestContextUtils.getLocale(request)); //"Balance Sheet For : ";
            DateheadingString = messageSource.getMessage("acc.rem.124", null,
                    RequestContextUtils.getLocale(request)); //"Balance Sheet Till :";
            value = formatter.format(endDate);
            subHeading1 = messageSource.getMessage("acc.balanceSheet.Amount(asset)", null,
                    RequestContextUtils.getLocale(request)); //"Asset";
            subHeading2 = messageSource.getMessage("acc.balanceSheet.Amount(liability)", null,
                    RequestContextUtils.getLocale(request)); //"Liability";
            if (toggle == 1) {
                subHeading1 = messageSource.getMessage("acc.balanceSheet.Amount(liability)", null,
                        RequestContextUtils.getLocale(request)); //"Liability";
                subHeading2 = messageSource.getMessage("acc.balanceSheet.Amount(asset)", null,
                        RequestContextUtils.getLocale(request)); //"Asset";
            }
        } else {
            headingString = messageSource.getMessage("acc.rem.125", null,
                    RequestContextUtils.getLocale(request)); // "P&L Statement For : ";
            DateheadingString = messageSource.getMessage("acc.rem.126", null,
                    RequestContextUtils.getLocale(request)); // "P&L Statement From-To :";
            value = formatter.format(startDate) + " "
                    + messageSource.getMessage("acc.common.to", null, RequestContextUtils.getLocale(request))
                    + " " + formatter.format(endDate);
            subHeading1 = messageSource.getMessage("acc.P&L.Amount(Debit)", null,
                    RequestContextUtils.getLocale(request)); //"Debit";
            subHeading2 = messageSource.getMessage("acc.P&L.Amount(Credit)", null,
                    RequestContextUtils.getLocale(request)); //"Credit";
        }
        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 tab1 = 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();

        //            addHeaderFooter(document, writer);

        PdfPTable table1 = new PdfPTable(3);
        table1.setWidthPercentage(100);
        table1.setWidths(new float[] { 30, 30, 40 });

        PdfPCell blankCell = new PdfPCell();
        blankCell.setBorder(0);
        tab1 = addCompanyLogo(logoPath, comName);
        PdfPCell cell1 = new PdfPCell(tab1);
        cell1.setBorder(0);
        table1.addCell(cell1);
        table1.addCell(blankCell);
        table1.addCell(blankCell);

        PdfPCell headerCell = createCell(headingString, FontContext.TABLE_DATA, Element.ALIGN_LEFT, 0, 5);
        headerCell.setBorder(0);
        table1.addCell(headerCell);
        PdfPCell headerNameCell = createCell(comName, FontContext.TABLE_DATA, Element.ALIGN_LEFT, 0, 5);
        headerNameCell.setBorder(0);
        table1.addCell(headerNameCell);
        table1.addCell(blankCell);

        headerCell = createCell(DateheadingString, FontContext.TABLE_DATA, Element.ALIGN_LEFT, 0, 5);
        headerCell.setBorder(0);
        table1.addCell(headerCell);
        headerNameCell = createCell(value, FontContext.TABLE_DATA, Element.ALIGN_LEFT, 0, 5);
        headerNameCell.setBorder(0);
        table1.addCell(headerNameCell);
        table1.addCell(blankCell);

        table1.addCell(blankCell);
        table1.addCell(blankCell);
        table1.addCell(blankCell);

        jobj = jobj.getJSONObject("data");
        JSONArray rightObjArr = flag == 1 ? jobj.getJSONArray("right") : jobj.getJSONArray("left");
        JSONArray leftObjArr = flag == 1 ? jobj.getJSONArray("left") : jobj.getJSONArray("right");
        if (toggle == 1) {
            rightObjArr = jobj.getJSONArray("left");
            leftObjArr = jobj.getJSONArray("right");
        }
        JSONArray finalValArr = jobj.getJSONArray("total");
        PdfPCell HeaderCell1 = createCell(
                messageSource.getMessage("acc.P&L.particulars", null, RequestContextUtils.getLocale(request)),
                FontContext.TABLE_DATA, Element.ALIGN_LEFT, 0, 5);
        HeaderCell1.setBorderWidthBottom(1);
        PdfPCell HeaderCell2 = createCell(subHeading1, FontContext.TABLE_DATA, Element.ALIGN_LEFT, 0, 5);
        HeaderCell2.setBorderWidthBottom(1);
        table1.addCell(HeaderCell1);
        table1.addCell(HeaderCell2);
        table1.addCell(blankCell);
        double totalAsset = Double.parseDouble(finalValArr.getString(0));
        double totalLibility = Double.parseDouble(finalValArr.getString(1));
        for (int i = 0; i < rightObjArr.length(); i++) {
            JSONObject leftObj = rightObjArr.getJSONObject(i);
            addBalanceSheetCell(leftObj, table1, currencyid);
            //                PdfPCell cell3 = createCell(leftObj.get("accountname").toString(), fontSmallBold, Element.ALIGN_LEFT, 0, 5);
            //                PdfPCell cell4 = createCell(com.krawler.common.util.StringUtil.serverHTMLStripper(leftObj.get("amount").toString()), fontSmallBold, Element.ALIGN_LEFT, 0, 5);
            //                cell3.setBorder(0);
            //                table1.addCell(cell3);
            //                cell4.setBorder(0);
            //                table1.addCell(cell4);
        }
        PdfPCell totalAsscell = createBalanceSheetCell(
                messageSource.getMessage("acc.common.total", null, RequestContextUtils.getLocale(request)) + " "
                        + subHeading1,
                FontContext.TABLE_DATA, Element.ALIGN_LEFT, 0, 0, 0);
        table1.addCell(totalAsscell);
        PdfPCell totalAssValcell = createBalanceSheetCell(
                exportDaoObj.currencyRender(Double.toString(totalAsset), currencyid), fontSmallBold,
                Element.ALIGN_RIGHT, 0, 0, 0);
        table1.addCell(totalAssValcell);
        for (int i = 0; i < 16; i++)
            table1.addCell(blankCell);

        HeaderCell1 = createCell(
                messageSource.getMessage("acc.balanceSheet.particulars", null,
                        RequestContextUtils.getLocale(request)),
                FontContext.TABLE_DATA, Element.ALIGN_LEFT, 0, 5);
        HeaderCell1.setBorderWidthBottom(1);
        HeaderCell2 = createCell(subHeading2, FontContext.TABLE_DATA, Element.ALIGN_LEFT, 0, 5);
        HeaderCell2.setBorderWidthBottom(1);
        table1.addCell(HeaderCell1);
        table1.addCell(HeaderCell2);
        table1.addCell(blankCell);

        for (int i = 0; i < leftObjArr.length(); i++) {
            JSONObject leftObj = leftObjArr.getJSONObject(i);
            addBalanceSheetCell(leftObj, table1, currencyid);
            //                PdfPCell cell3 = createCell(leftObj.get("accountname").toString(), fontSmallBold, Element.ALIGN_LEFT, 0, 5);
            //                PdfPCell cell4 = createCell(com.krawler.common.util.StringUtil.serverHTMLStripper(leftObj.get("amount").toString()), fontSmallBold, Element.ALIGN_LEFT, 0, 5);
            //                cell3.setBorder(0);
            //                table1.addCell(cell3);
            //                cell4.setBorder(0);
            //                table1.addCell(cell4);
        }
        PdfPCell totalLibcell = createBalanceSheetCell(
                messageSource.getMessage("acc.common.total", null, RequestContextUtils.getLocale(request)) + " "
                        + subHeading2,
                FontContext.TABLE_DATA, Element.ALIGN_LEFT, 0, 0, 0);
        table1.addCell(totalLibcell);
        PdfPCell totalLibValcell = createBalanceSheetCell(
                exportDaoObj.currencyRender(Double.toString(totalLibility), currencyid), FontContext.TABLE_DATA,
                Element.ALIGN_RIGHT, 0, 0, 0);
        table1.addCell(totalLibValcell);
        table1.addCell(blankCell);

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

        //            document.add(mainTable);
        document.add(mainTable);
    } catch (Exception ex) {
        return null;
    } finally {
        if (document != null) {
            document.close();
        }
        if (writer != null) {
            writer.close();
        }
        if (baos != null) {
            baos.close();
        }
    }
    return baos;
}