List of usage examples for com.lowagie.text Document add
public boolean add(Element element) throws DocumentException
Element
to the Document
. 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; }