List of usage examples for com.lowagie.text Document leftMargin
public float leftMargin()
From source file:org.jbpm.designer.web.server.TransformerServlet.java
License:Apache License
public void scalePDFImage(Document document, Image image) { float scaler = ((document.getPageSize().getWidth() - document.leftMargin() - document.rightMargin()) / image.getWidth()) * 100;/*ww w.j ava 2s . c o m*/ image.scalePercent(scaler); }
From source file:org.opentestsystem.delivery.testreg.rest.view.PdfReportPageEventHelper.java
License:Open Source License
@Override public void onEndPage(final PdfWriter writer, final Document document) { PdfContentByte cb = writer.getDirectContent(); if (document.getPageNumber() == 1) { ColumnText.showTextAligned(cb, Element.ALIGN_CENTER, new Phrase(""), (document.right() - document.left()) / 2 + document.leftMargin(), document.top() - 5, 0f); }// w w w .ja va 2 s . co m ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, new Phrase(""), document.left(), document.bottom() - 15, 0f); int pageN = writer.getPageNumber(); String text = "Page " + pageN + " of "; cb.beginText(); cb.setFontAndSize(helv, 11); cb.setTextMatrix(document.right() - document.rightMargin() - 10, document.bottom() - 15); cb.showText(text); cb.endText(); cb.addTemplate(template, document.right(), document.bottom() - 15); }
From source file:org.posterita.businesslogic.performanceanalysis.POSReportManager.java
License:Open Source License
public static String getCompleteOrderPDFReport(Properties ctx, int orderId, String trxName) throws OperationException { String docStatus = null;//from www. j a v a 2 s . c om String dateOrdered = null; String orderType = null; String orgName = null; String orgAddress = null; String salesRep = null; String paymentBy = null; String customerName = null; String customerAddress = null; String documentNo = null; String currency = "Rs "; NumberFormat formatter = new DecimalFormat("###,###,##0.00"); currency = POSTerminalManager.getDefaultSalesCurrency(ctx).getCurSymbol() + " "; MOrder order = new MOrder(ctx, orderId, trxName); // getting payment info int[] invoiceIds = MInvoice.getAllIDs(MInvoice.Table_Name, "AD_CLIENT_ID=" + Env.getAD_Client_ID(ctx) + " and C_ORDER_ID=" + order.get_ID(), null); double paymentByCash = 0.0; double paymentByCard = 0.0; double paymentByCheque = 0.0; MInvoice invoice = null; String paymentRule = null; boolean isMixed = false; for (int i = 0; i < invoiceIds.length; i++) { invoice = new MInvoice(ctx, invoiceIds[i], trxName); if (i == 0) { paymentRule = invoice.getPaymentRule(); } else { if (!paymentRule.equalsIgnoreCase(invoice.getPaymentRule())) { isMixed = true; } } if (invoice.getPaymentRule().equals(MOrder.PAYMENTRULE_Cash)) { paymentByCash += invoice.getGrandTotal().doubleValue(); paymentBy = Constants.PAYMENT_RULE_CASH; } if (invoice.getPaymentRule().equals(MOrder.PAYMENTRULE_CreditCard)) { paymentByCard += invoice.getGrandTotal().doubleValue(); paymentBy = Constants.PAYMENT_RULE_CARD; } if (invoice.getPaymentRule().equals(MOrder.PAYMENTRULE_DirectDebit)) { paymentByCard += invoice.getGrandTotal().doubleValue(); paymentBy = Constants.PAYMENT_RULE_CARD; } if (invoice.getPaymentRule().equals(MOrder.PAYMENTRULE_Check)) { paymentByCheque += invoice.getGrandTotal().doubleValue(); paymentBy = Constants.PAYMENT_RULE_CHEQUE; } } // for if (isMixed) { paymentBy = "Mixed (Cash:" + formatter.format(paymentByCash) + " Card:" + formatter.format(paymentByCard) + " Cheque:" + formatter.format(paymentByCheque) + ")"; } // getting orgInfo MOrg org = new MOrg(ctx, order.getAD_Org_ID(), trxName); int location_id = org.getInfo().getC_Location_ID(); MLocation location = new MLocation(ctx, location_id, trxName); orgName = org.getName(); String address1 = (location.getAddress1() == null) ? " " : location.getAddress1(); String address2 = (location.getAddress2() == null) ? " " : location.getAddress2(); orgAddress = (address1 + " " + address2).trim(); // getting order type orderType = order.getOrderType(); // getting orderInfo docStatus = order.getDocStatusName(); documentNo = order.getDocumentNo(); Date d = new Date(order.getCreated().getTime()); SimpleDateFormat s = new SimpleDateFormat(TimestampConvertor.DEFAULT_DATE_PATTERN1); dateOrdered = s.format(d); // getting salesrep int saleRep_id = order.getSalesRep_ID(); MUser user = new MUser(ctx, saleRep_id, trxName); salesRep = user.getName(); // getting customer info int bpartner_id = order.getBill_BPartner_ID(); BPartnerBean bean = BPartnerManager.getBpartner(ctx, bpartner_id, trxName); String name1 = (bean.getPartnerName() == null) ? " " : bean.getPartnerName(); String name2 = (bean.getName2() == null) ? " " : bean.getName2(); customerName = (name1 + " " + name2).trim(); address1 = (bean.getAddress1() == null) ? " " : bean.getAddress1(); address2 = (bean.getAddress2() == null) ? " " : bean.getAddress2(); customerAddress = (address1 + " " + address2).trim(); ArrayList<WebOrderLineBean> orderLineList = POSManager.populateOrderLines(ctx, order); // ----------------------------------- generating pdf // -------------------------------------- String reportName = RandomStringGenerator.randomstring() + ".pdf"; String reportPath = ReportManager.getReportPath(reportName); Font titleFont = new Font(Font.TIMES_ROMAN, 18, Font.BOLD); Font subtitleFont = new Font(Font.TIMES_ROMAN, 14, Font.BOLD); Font headerFont = new Font(Font.TIMES_ROMAN, 11, Font.BOLD); Font simpleFont = new Font(Font.TIMES_ROMAN, 10); float cellBorderWidth = 0.0f; // step 1: creation of a document-object Document document = new Document(PageSize.A4, 30, 30, 20, 40);// l,r,t,b // document.getPageSize().set; System.out.println(document.leftMargin()); try { // step 2: // we create a writer that listens to the document // and directs a PDF-stream to a file PdfWriter.getInstance(document, new FileOutputStream(reportPath)); // step 3: we open the document document.open(); // step 4: we add a paragraph to the document Image logo = null; String imageURI = PathInfo.PROJECT_HOME + "images/logo.gif"; // "images/pos/openBLUE_POS_Logo.gif"; try { byte logoData[] = OrganisationManager.getLogo(ctx, null); logo = Image.getInstance(logoData); } catch (LogoException ex) { logo = Image.getInstance(imageURI); } logo.setAbsolutePosition(document.left(), document.top() - logo.getHeight()); document.add(logo); PdfPTable table = new PdfPTable(2); PdfPCell cell = null; // table.getDefaultCell().setPadding(5.0f); table.setWidthPercentage(100.0f); // header cell Paragraph title = new Paragraph(); title.add(new Chunk(orgName, subtitleFont)); title.add(new Chunk("\n")); title.add(new Chunk(orgAddress, subtitleFont)); // cell = new PdfPCell(new Paragraph(new // Chunk("Title1",titleFont))); cell = new PdfPCell(title); cell.setColspan(2); cell.setHorizontalAlignment(PdfPCell.ALIGN_RIGHT); cell.setVerticalAlignment(PdfPCell.ALIGN_MIDDLE); cell.setFixedHeight(logo.getHeight()); cell.setBorderWidth(cellBorderWidth); table.addCell(cell); cell = new PdfPCell(new Paragraph("")); cell.setBorderWidth(cellBorderWidth); cell.setFixedHeight(10); cell.setColspan(2); table.addCell(cell); // doc type cell = new PdfPCell(new Paragraph(new Chunk(orderType, titleFont))); cell.setColspan(2); cell.setHorizontalAlignment(PdfPCell.ALIGN_CENTER); cell.setVerticalAlignment(PdfPCell.ALIGN_MIDDLE); cell.setBorderWidth(cellBorderWidth); table.addCell(cell); // spacing cell = new PdfPCell(new Paragraph("")); cell.setBorderWidth(cellBorderWidth); cell.setFixedHeight(10); cell.setColspan(2); table.addCell(cell); // row 1 cell = new PdfPCell(new Paragraph(new Chunk(customerName, headerFont))); cell.setHorizontalAlignment(PdfPCell.ALIGN_LEFT); cell.setBorderWidth(cellBorderWidth); table.addCell(cell); cell = new PdfPCell(new Paragraph(new Chunk("Sales Rep: " + salesRep, headerFont))); cell.setHorizontalAlignment(PdfPCell.ALIGN_RIGHT); cell.setBorderWidth(cellBorderWidth); table.addCell(cell); // row 2 cell = new PdfPCell(new Paragraph(new Chunk(customerAddress, headerFont))); cell.setHorizontalAlignment(PdfPCell.ALIGN_LEFT); cell.setBorderWidth(cellBorderWidth); table.addCell(cell); // spacing cell = new PdfPCell(new Paragraph("")); cell.setBorderWidth(cellBorderWidth); cell.setFixedHeight(10); cell.setColspan(2); table.addCell(cell); // row 3 cell = new PdfPCell(new Paragraph(new Chunk("Ref No: " + documentNo, headerFont))); cell.setColspan(2); cell.setHorizontalAlignment(PdfPCell.ALIGN_LEFT); cell.setBorderWidth(cellBorderWidth); table.addCell(cell); // row 4 cell = new PdfPCell(new Paragraph(new Chunk("Doc Status: " + docStatus, headerFont))); cell.setColspan(2); cell.setHorizontalAlignment(PdfPCell.ALIGN_LEFT); cell.setBorderWidth(cellBorderWidth); table.addCell(cell); // row 5 cell = new PdfPCell(new Paragraph(new Chunk("Payment By: " + paymentBy, headerFont))); cell.setColspan(2); cell.setHorizontalAlignment(PdfPCell.ALIGN_LEFT); cell.setBorderWidth(cellBorderWidth); table.addCell(cell); // row 6 cell = new PdfPCell(new Paragraph(new Chunk("Date: " + dateOrdered, headerFont))); cell.setColspan(2); cell.setHorizontalAlignment(PdfPCell.ALIGN_LEFT); cell.setBorderWidth(cellBorderWidth); table.addCell(cell); // spacing cell = new PdfPCell(new Paragraph("")); cell.setColspan(2); cell.setFixedHeight(10); cell.setBorderWidth(cellBorderWidth); table.addCell(cell); // spacing cell = new PdfPCell(new Paragraph("")); cell.setColspan(2); cell.setFixedHeight(10); cell.setBorderWidth(cellBorderWidth); table.addCell(cell); // ------------------------------------------------------ cell = new PdfPCell(); cell.setColspan(2); cell.setBorderWidth(cellBorderWidth); PdfPTable t = new PdfPTable(6); t.getDefaultCell().setPadding(3.0f); t.setWidthPercentage(100.0f); int[] widths = { 1, 4, 1, 2, 2, 2 }; t.setWidths(widths); // setting headers t.addCell(new Paragraph(new Chunk("SerNo", headerFont))); t.addCell(new Paragraph(new Chunk("Name", headerFont))); t.addCell(new Paragraph(new Chunk("Qty", headerFont))); t.addCell(new Paragraph(new Chunk("Price", headerFont))); t.addCell(new Paragraph(new Chunk("VAT", headerFont))); t.addCell(new Paragraph(new Chunk("Total", headerFont))); // setting table data // --------------------------------writing table // data------------------------------ int serNo = 0; int totalQty = 0; double totalAmt = 0.0; double totalTaxAmt = 0.0; double grandTotal = 0.0; BigDecimal qty = null; BigDecimal lineAmt = null; BigDecimal taxAmt = null; BigDecimal lineTotalAmt = null; for (WebOrderLineBean orderlineBean : orderLineList) { serNo++; qty = orderlineBean.getQtyOrdered(); lineAmt = orderlineBean.getLineNetAmt(); taxAmt = orderlineBean.getTaxAmt(); lineTotalAmt = orderlineBean.getLineTotalAmt(); totalQty += qty.intValue(); totalAmt += lineAmt.doubleValue(); totalTaxAmt += taxAmt.doubleValue(); grandTotal += lineTotalAmt.doubleValue(); t.addCell(new Paragraph(new Chunk(serNo + "", simpleFont))); t.addCell(new Paragraph(new Chunk(orderlineBean.getProductName(), simpleFont))); t.addCell(new Paragraph(new Chunk(qty.intValue() + "", simpleFont))); t.addCell(new Paragraph(new Chunk(formatter.format(lineAmt.doubleValue()), simpleFont))); t.addCell(new Paragraph(new Chunk(formatter.format(taxAmt.doubleValue()), simpleFont))); t.addCell(new Paragraph(new Chunk(formatter.format(lineTotalAmt.doubleValue()), simpleFont))); } // ----------------------------------------------------------------------------------- // setting table footer t.getDefaultCell().setBackgroundColor(new Color(240, 240, 240)); PdfPCell c = new PdfPCell(new Paragraph(new Chunk("ORDER TOTAL", headerFont))); c.setColspan(2); c.setBackgroundColor(new Color(240, 240, 240)); t.addCell(c); t.addCell(new Paragraph(new Chunk(totalQty + "", simpleFont))); t.addCell(new Paragraph(new Chunk(currency + formatter.format(totalAmt), simpleFont))); t.addCell(new Paragraph(new Chunk(currency + formatter.format(totalTaxAmt), simpleFont))); t.addCell(new Paragraph(new Chunk(currency + formatter.format(grandTotal), simpleFont))); t.setSplitRows(true); cell.addElement(t); // ------------------------------------------------------ // table.addCell(cell); table.setSplitRows(true); document.add(table); document.add(t); } catch (Exception e) { throw new OperationException(e); } // step 5: we close the document document.close(); return reportName; }
From source file:org.posterita.businesslogic.performanceanalysis.POSReportManager.java
License:Open Source License
public static String getShipmentPDFReport(Properties ctx, int minoutId, String trxName) throws OperationException { String docStatus = null;/*from w w w. j ava 2 s. c o m*/ String dateOrdered = null; String docType = null; String orgName = null; String orgAddress = null; String salesRep = null; String phone = " "; String fax = " "; String customerName = null; String customerAddress = null; String documentNo = null; MInOut minout = MinOutManager.loadMInOut(ctx, minoutId, trxName); // getting orgInfo MOrg org = new MOrg(ctx, minout.getAD_Org_ID(), trxName); int location_id = org.getInfo().getC_Location_ID(); MLocation location = new MLocation(ctx, location_id, trxName); MBPartner orgPartner = new MBPartner(ctx, org.getLinkedC_BPartner_ID(trxName), trxName); MBPartnerLocation meLocation[] = MBPartnerLocation.getForBPartner(ctx, orgPartner.get_ID()); if (meLocation.length != 1) throw new OperationException("Should have only 1 location for organisation business partner!!"); MBPartnerLocation orgLocation = meLocation[0]; if (orgLocation.getPhone() != null) phone = orgLocation.getPhone(); if (orgLocation.getFax() != null) fax = orgLocation.getFax(); ; orgName = org.getName(); String address1 = (location.getAddress1() == null) ? " " : location.getAddress1(); String address2 = (location.getAddress2() == null) ? " " : location.getAddress2(); orgAddress = (address1 + " " + address2).trim(); // getting order type MDocType doctype = MDocType.get(ctx, minout.getC_DocType_ID()); docType = doctype.getName(); // getting orderInfo docStatus = minout.getDocStatusName(); documentNo = minout.getDocumentNo(); Date d = new Date(minout.getCreated().getTime()); SimpleDateFormat s = new SimpleDateFormat(TimestampConvertor.DEFAULT_DATE_PATTERN1); dateOrdered = s.format(d); // getting salesrep int saleRep_id = minout.getSalesRep_ID(); MUser user = new MUser(ctx, saleRep_id, trxName); salesRep = user.getName(); // getting customer info int bpartner_id = minout.getC_BPartner_ID(); BPartnerBean bean = BPartnerManager.getBpartner(ctx, bpartner_id, trxName); String name1 = (bean.getPartnerName() == null) ? " " : bean.getPartnerName(); String name2 = (bean.getName2() == null) ? " " : bean.getName2(); customerName = (name1 + " " + name2).trim(); address1 = (bean.getAddress1() == null) ? " " : bean.getAddress1(); address2 = (bean.getAddress2() == null) ? " " : bean.getAddress2(); customerAddress = (address1 + " " + address2).trim(); ArrayList<WebMinOutLineBean> orderLineList = MinOutManager.getWebMinOutLines(ctx, minout); // ----------------------------------- generating pdf // -------------------------------------- String reportName = RandomStringGenerator.randomstring() + ".pdf"; String reportPath = ReportManager.getReportPath(reportName); Font titleFont = new Font(Font.TIMES_ROMAN, 18, Font.BOLD); Font subtitleFont = new Font(Font.TIMES_ROMAN, 14, Font.BOLD); Font headerFont = new Font(Font.TIMES_ROMAN, 11, Font.BOLD); Font simpleFont = new Font(Font.TIMES_ROMAN, 10); float cellBorderWidth = 0.0f; // step 1: creation of a document-object Document document = new Document(PageSize.A4, 30, 30, 20, 40);// l,r,t,b // document.getPageSize().set; System.out.println(document.leftMargin()); try { // step 2: // we create a writer that listens to the document // and directs a PDF-stream to a file PdfWriter.getInstance(document, new FileOutputStream(reportPath)); // step 3: we open the document document.open(); // step 4: we add a paragraph to the document Image logo = null; // TODO: make this part dynamic <------------------------------ // IMPORTANT !!!!!!!!!!!!!!!!!!!!!!!!!!! String imageURI = PathInfo.PROJECT_HOME + "images/pos/openBLUE_POS_Logo.gif"; logo = Image.getInstance(imageURI); // MAttachment attachment = new // MAttachment(ctx,MOrg.Table_ID,org.getID(),null); // logo = Image.getInstance(attachment.getEntries()[0].getData()); try { byte logoData[] = OrganisationManager.getLogo(ctx, null); logo = Image.getInstance(logoData); } catch (LogoException ex) { logo = Image.getInstance(imageURI); } logo.setAbsolutePosition(document.left(), document.top() - logo.getHeight()); document.add(logo); PdfPTable table = new PdfPTable(2); PdfPCell cell = null; // table.getDefaultCell().setPadding(5.0f); table.setWidthPercentage(100.0f); // header cell Paragraph title = new Paragraph(); title.add(new Chunk(orgName, subtitleFont)); title.add(new Chunk("\n")); title.add(new Chunk(orgAddress, subtitleFont)); title.add(new Chunk("\n")); title.add(new Chunk("Phone: " + phone, subtitleFont)); title.add(new Chunk("\n")); title.add(new Chunk("Fax: " + fax, subtitleFont)); // cell = new PdfPCell(new Paragraph(new // Chunk("Title1",titleFont))); cell = new PdfPCell(title); cell.setColspan(2); cell.setHorizontalAlignment(PdfPCell.ALIGN_RIGHT); cell.setVerticalAlignment(PdfPCell.ALIGN_MIDDLE); cell.setFixedHeight(logo.getHeight()); cell.setBorderWidth(cellBorderWidth); table.addCell(cell); cell = new PdfPCell(new Paragraph("")); cell.setBorderWidth(cellBorderWidth); cell.setFixedHeight(10); cell.setColspan(2); table.addCell(cell); // doc type cell = new PdfPCell(new Paragraph(new Chunk(docType, titleFont))); cell.setColspan(2); cell.setHorizontalAlignment(PdfPCell.ALIGN_CENTER); cell.setVerticalAlignment(PdfPCell.ALIGN_MIDDLE); cell.setBorderWidth(cellBorderWidth); table.addCell(cell); // spacing cell = new PdfPCell(new Paragraph("")); cell.setBorderWidth(cellBorderWidth); cell.setFixedHeight(10); cell.setColspan(2); table.addCell(cell); // row 1 cell = new PdfPCell(new Paragraph(new Chunk(customerName, headerFont))); cell.setHorizontalAlignment(PdfPCell.ALIGN_LEFT); cell.setBorderWidth(cellBorderWidth); table.addCell(cell); cell = new PdfPCell(new Paragraph(new Chunk("Sales Rep: " + salesRep, headerFont))); cell.setHorizontalAlignment(PdfPCell.ALIGN_RIGHT); cell.setBorderWidth(cellBorderWidth); table.addCell(cell); // row 2 cell = new PdfPCell(new Paragraph(new Chunk(customerAddress, headerFont))); cell.setHorizontalAlignment(PdfPCell.ALIGN_LEFT); cell.setBorderWidth(cellBorderWidth); table.addCell(cell); // spacing cell = new PdfPCell(new Paragraph("")); cell.setBorderWidth(cellBorderWidth); cell.setFixedHeight(10); cell.setColspan(2); table.addCell(cell); // row 3 cell = new PdfPCell(new Paragraph(new Chunk("No: " + documentNo, headerFont))); cell.setColspan(2); cell.setHorizontalAlignment(PdfPCell.ALIGN_LEFT); cell.setBorderWidth(cellBorderWidth); table.addCell(cell); // row 4 cell = new PdfPCell(new Paragraph(new Chunk("Doc Status: " + docStatus, headerFont))); cell.setColspan(2); cell.setHorizontalAlignment(PdfPCell.ALIGN_LEFT); cell.setBorderWidth(cellBorderWidth); table.addCell(cell); /* * //row 5 cell = new PdfPCell(new Paragraph(new Chunk("Payment By: * "+paymentBy,headerFont))); cell.setColspan(2); * cell.setHorizontalAlignment(PdfPCell.ALIGN_LEFT); * cell.setBorderWidth(cellBorderWidth); table.addCell(cell); */ // row 6 cell = new PdfPCell(new Paragraph(new Chunk("Date: " + dateOrdered, headerFont))); cell.setColspan(2); cell.setHorizontalAlignment(PdfPCell.ALIGN_LEFT); cell.setBorderWidth(cellBorderWidth); table.addCell(cell); // spacing cell = new PdfPCell(new Paragraph("")); cell.setColspan(2); cell.setFixedHeight(10); cell.setBorderWidth(cellBorderWidth); table.addCell(cell); // spacing cell = new PdfPCell(new Paragraph("")); cell.setColspan(2); cell.setFixedHeight(10); cell.setBorderWidth(cellBorderWidth); table.addCell(cell); // ------------------------------------------------------ cell = new PdfPCell(); cell.setColspan(2); cell.setBorderWidth(cellBorderWidth); PdfPTable t = new PdfPTable(3); t.getDefaultCell().setPadding(3.0f); t.setWidthPercentage(100.0f); int[] widths = { 1, 10, 1 }; t.setWidths(widths); // setting headers t.addCell(new Paragraph(new Chunk("SerNo", headerFont))); t.addCell(new Paragraph(new Chunk("Name", headerFont))); t.addCell(new Paragraph(new Chunk("Qty", headerFont))); // setting table data // --------------------------------writing table // data------------------------------ int serNo = 0; BigDecimal qty = null; for (WebMinOutLineBean orderlineBean : orderLineList) { serNo++; qty = orderlineBean.getQtyOrdered(); t.addCell(new Paragraph(new Chunk(serNo + "", simpleFont))); t.addCell(new Paragraph(new Chunk(orderlineBean.getProductName(), simpleFont))); t.addCell(new Paragraph(new Chunk(qty.intValue() + "", simpleFont))); } // ----------------------------------------------------------------------------------- // table.addCell(cell); table.setSplitRows(true); document.add(table); document.add(t); } catch (Exception e) { throw new OperationException(e); } // step 5: we close the document document.close(); return reportName; }
From source file:org.posterita.businesslogic.performanceanalysis.POSReportManager.java
License:Open Source License
public static String endOfTheDayPDF(Properties ctx, CloseTillBean bean) throws OperationException { String reportName = RandomStringGenerator.randomstring() + ".pdf"; String reportPath = ReportManager.getReportPath(reportName); double beginningBalance = (bean.getBeginningBalance() == null ? 0 : bean.getBeginningBalance().doubleValue()); double statementDifference = (bean.getNetCashTrx() == null ? 0 : bean.getNetCashTrx().doubleValue()); double transferAmount = (bean.getBalanceEntered() == null ? 0 : bean.getBalanceEntered().doubleValue()); double differenceAmount = (bean.getDifference() == null ? 0 : bean.getDifference().doubleValue()); double endingBalance = (bean.getEndingBalance() == null ? 0 : bean.getEndingBalance().doubleValue()); double tillCashTotal = (bean.getCashTotal() == null ? 0 : bean.getCashTotal().doubleValue()); double cashBeanCardTotal = (bean.getCardTotal() == null ? 0 : bean.getCardTotal().doubleValue()); double tillCardTotal = (bean.getCardTotal() == null ? 0 : bean.getCardTotal().doubleValue()); double cardDifference = (bean.getCardDifference() == null ? 0 : bean.getCardDifference().doubleValue()); double cashBeanChequeTotal = (bean.getChequeTotal() == null ? 0 : bean.getChequeTotal().doubleValue()); double tillChequeTotal = (bean.getChequeTotal() == null ? 0 : bean.getChequeTotal().doubleValue()); double chequeDifference = (bean.getChequeDifference() == null ? 0 : bean.getChequeDifference().doubleValue()); double grandTotal = (bean.getGrandTotal() == null ? 0 : bean.getGrandTotal().doubleValue()); Font titleFont = new Font(Font.TIMES_ROMAN, 8, Font.BOLD); Font subtitleFont = new Font(Font.TIMES_ROMAN, 8, Font.BOLD); // Font headerFont = new Font(Font.TIMES_ROMAN, 8,Font.BOLD); Font simpleFont = new Font(Font.TIMES_ROMAN, 8); final float NO_BORDER = 0.0f; // final float THIN_BORDER = 1.0f; String currency = "Rs "; NumberFormat formatter = new DecimalFormat("###,###,##0.00"); PdfPCell cell = null;//from w w w . j av a2s.c o m // step 1: creation of a document-object Document document = new Document(PageSize.A7, 3, 3, 2, 4);// l,r,t,b // document.getPageSize().set; System.out.println(document.leftMargin()); try { currency = POSTerminalManager.getDefaultSalesCurrency(ctx).getCurSymbol(); PdfWriter.getInstance(document, new FileOutputStream(reportPath)); document.open(); PdfPTable layoutTbl = new PdfPTable(1); layoutTbl.getDefaultCell().setBorderWidth(NO_BORDER); layoutTbl.getDefaultCell().setPadding(2.0f); SimpleDateFormat sdf = new SimpleDateFormat(TimestampConvertor.DEFAULT_DATE_PATTERN1); Date today = new Date(System.currentTimeMillis()); // 1.add title Paragraph title = new Paragraph(new Chunk("End of the Day Report", titleFont)); title.setAlignment(Paragraph.ALIGN_CENTER); cell = new PdfPCell(title); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setBorderWidth(NO_BORDER); layoutTbl.addCell(cell); Paragraph subTitle = new Paragraph(new Chunk(sdf.format(today), subtitleFont)); subTitle.setAlignment(Paragraph.ALIGN_CENTER); cell = new PdfPCell(subTitle); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setBorderWidth(NO_BORDER); layoutTbl.addCell(cell); // spacing cell = new PdfPCell(new Paragraph("")); cell.setFixedHeight(10); cell.setBorderWidth(NO_BORDER); layoutTbl.addCell(cell); // display report data PdfPTable table = new PdfPTable(2); Phrase phrase = null; // row 1 phrase = new Phrase("Till No:", simpleFont); table.addCell(phrase); phrase = new Phrase(bean.getTillName(), simpleFont); table.addCell(phrase); // row 2 phrase = new Phrase("Begining Balance:", simpleFont); table.addCell(phrase); phrase = new Phrase(currency + formatter.format(beginningBalance), simpleFont); table.addCell(phrase); // row 3 phrase = new Phrase("Net Cash Trx:", simpleFont); table.addCell(phrase); phrase = new Phrase(currency + formatter.format(statementDifference), simpleFont); table.addCell(phrase); phrase = new Phrase("Till Balance Entered:", simpleFont); table.addCell(phrase); phrase = new Phrase(currency + formatter.format(transferAmount), simpleFont); table.addCell(phrase); phrase = new Phrase("Difference:", simpleFont); table.addCell(phrase); phrase = new Phrase(currency + formatter.format(differenceAmount), simpleFont); table.addCell(phrase); phrase = new Phrase("Ending Balance:", simpleFont); table.addCell(phrase); phrase = new Phrase(currency + formatter.format(endingBalance), simpleFont); table.addCell(phrase); phrase = new Phrase("Cash Total:", simpleFont); table.addCell(phrase); phrase = new Phrase(currency + formatter.format(tillCashTotal), simpleFont); table.addCell(phrase); phrase = new Phrase("Card Amt Entered:", simpleFont); table.addCell(phrase); phrase = new Phrase(currency + formatter.format(cashBeanCardTotal), simpleFont); table.addCell(phrase); phrase = new Phrase("Card Total:", simpleFont); table.addCell(phrase); phrase = new Phrase(currency + formatter.format(tillCardTotal), simpleFont); table.addCell(phrase); phrase = new Phrase("Card Difference:", simpleFont); table.addCell(phrase); phrase = new Phrase(currency + formatter.format(cardDifference), simpleFont); table.addCell(phrase); phrase = new Phrase("Cheque Amt Entered:", simpleFont); table.addCell(phrase); phrase = new Phrase(currency + formatter.format(cashBeanChequeTotal), simpleFont); table.addCell(phrase); phrase = new Phrase("Cheque Total:", simpleFont); table.addCell(phrase); phrase = new Phrase(currency + formatter.format(tillChequeTotal), simpleFont); table.addCell(phrase); phrase = new Phrase("Cheque Difference:", simpleFont); table.addCell(phrase); phrase = new Phrase(currency + formatter.format(chequeDifference), simpleFont); table.addCell(phrase); phrase = new Phrase("Grand Total:", simpleFont); table.addCell(phrase); phrase = new Phrase(currency + formatter.format(grandTotal), simpleFont); table.addCell(phrase); layoutTbl.addCell(table); document.add(layoutTbl); } catch (Exception e) { throw new OperationException(e); } document.close(); return reportName; }
From source file:org.revager.export.PDFPageEventHelper.java
License:Open Source License
@Override public void onEndPage(PdfWriter writer, Document document) { int columnNumber; try {/*from w w w.ja v a2 s.c o m*/ Rectangle page = document.getPageSize(); float pageWidth = page.getWidth() - document.leftMargin() - document.rightMargin(); /* * Write marks */ setMarks(writer, document); /* * Define fonts */ headBaseFont = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.EMBEDDED); Font headFont = new Font(headBaseFont, headFontSize); footBaseFont = BaseFont.createFont(BaseFont.HELVETICA_OBLIQUE, BaseFont.CP1252, BaseFont.EMBEDDED); Font footFont = new Font(footBaseFont, footFontSize); /* * Cell fill for space between head/foot and content */ PdfPCell cellFill = new PdfPCell(); cellFill.setMinimumHeight(PDFTools.cmToPt(0.8f)); cellFill.setBorderWidth(0); /* * Write head */ if (headLogoPath != null) { columnNumber = 2; } else { columnNumber = 1; } PdfPTable head = new PdfPTable(columnNumber); Phrase phraseTitle = new Phrase(headTitle, headFont); PdfPCell cellTitle = new PdfPCell(phraseTitle); cellTitle.setHorizontalAlignment(Element.ALIGN_LEFT); cellTitle.setVerticalAlignment(Element.ALIGN_BOTTOM); cellTitle.setPaddingTop(0); cellTitle.setPaddingBottom(PDFTools.cmToPt(0.2f)); cellTitle.setPaddingLeft(0); cellTitle.setPaddingRight(0); cellTitle.setBorderWidthTop(0); cellTitle.setBorderWidthBottom(0.5f); cellTitle.setBorderWidthLeft(0); cellTitle.setBorderWidthRight(0); head.addCell(cellTitle); if (headLogoPath != null) { Image headLogo = Image.getInstance(headLogoPath); headLogo.scaleToFit(PDFTools.cmToPt(5.0f), PDFTools.cmToPt(1.1f)); PdfPCell cellLogo = new PdfPCell(headLogo); cellLogo.setHorizontalAlignment(Element.ALIGN_RIGHT); cellLogo.setVerticalAlignment(Element.ALIGN_BOTTOM); cellLogo.setPaddingTop(0); cellLogo.setPaddingBottom(PDFTools.cmToPt(0.15f)); cellLogo.setPaddingLeft(0); cellLogo.setPaddingRight(0); cellLogo.setBorderWidthTop(0); cellLogo.setBorderWidthBottom(0.5f); cellLogo.setBorderWidthLeft(0); cellLogo.setBorderWidthRight(0); head.addCell(cellLogo); head.addCell(cellFill); } head.addCell(cellFill); head.setTotalWidth(pageWidth); head.writeSelectedRows(0, -1, document.leftMargin(), page.getHeight() - document.topMargin() + head.getTotalHeight(), writer.getDirectContent()); /* * Write foot */ if (footText == null) { footText = " "; } PdfPTable foot = new PdfPTable(1); foot.addCell(cellFill); PdfPCell cellFootText = new PdfPCell(new Phrase(footText, footFont)); cellFootText.setHorizontalAlignment(Element.ALIGN_RIGHT); cellFootText.setVerticalAlignment(Element.ALIGN_TOP); cellFootText.setPaddingTop(PDFTools.cmToPt(0.15f)); cellFootText.setPaddingBottom(0); cellFootText.setPaddingLeft(0); cellFootText.setPaddingRight(0); cellFootText.setBorderWidthTop(0.5f); cellFootText.setBorderWidthBottom(0); cellFootText.setBorderWidthLeft(0); cellFootText.setBorderWidthRight(0); foot.addCell(cellFootText); /* * Print page numbers */ PdfContentByte contentByte = writer.getDirectContent(); contentByte.saveState(); String text = MessageFormat.format(translate("Page {0} of") + " ", writer.getPageNumber()); float textSize = footBaseFont.getWidthPoint(text, footFontSize); float textBase = document.bottom() - PDFTools.cmToPt(1.26f); contentByte.beginText(); contentByte.setFontAndSize(footBaseFont, footFontSize); float adjust; if (footText.trim().equals("")) { adjust = (pageWidth / 2) - (textSize / 2) - footBaseFont.getWidthPoint("0", footFontSize); } else { adjust = 0; } contentByte.setTextMatrix(document.left() + adjust, textBase); contentByte.showText(text); contentByte.endText(); contentByte.addTemplate(template, document.left() + adjust + textSize, textBase); contentByte.stroke(); contentByte.restoreState(); foot.setTotalWidth(pageWidth); foot.writeSelectedRows(0, -1, document.leftMargin(), document.bottomMargin(), writer.getDirectContent()); } catch (Exception e) { /* * Not part of unit testing because this exception is only thrown if * an internal error occurs. */ throw new ExceptionConverter(e); } }
From source file:org.sigmah.server.report.renderer.itext.ItextChartRenderer.java
License:Open Source License
public void render(DocWriter writer, Document doc, PivotChartElement element) { try {/*from w ww . java 2 s.c om*/ doc.add(ThemeHelper.elementTitle(element.getTitle())); ItextRendererHelper.addFilterDescription(doc, element.getContent().getFilterDescriptions()); float width = doc.getPageSize().getWidth() - doc.rightMargin() - doc.leftMargin(); float height = (doc.getPageSize().getHeight() - doc.topMargin() - doc.bottomMargin()) / 3f; if (writer instanceof PdfWriter) { // We can render the chart directly as vector graphics // in the PDF file PdfWriter pdfWriter = (PdfWriter) writer; PdfContentByte cb = pdfWriter.getDirectContent(); Graphics2D g2d = cb.createGraphics(width, height); chartRenderer.render(element, false, g2d, (int) width, (int) height, 72); g2d.dispose(); } else { // For RTF/Html we embed as a GIF width = width / 72f * RESOLUTION; height = height / 72f * RESOLUTION; BufferedImage chartImage = chartRenderer.renderImage(element, false, (int) width, (int) height, RESOLUTION); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(chartImage, "GIF", baos); Image image = Image.getInstance(baos.toByteArray()); image.scalePercent(72f / RESOLUTION * 100f); doc.add(image); } } catch (Exception e) { e.printStackTrace(); } }
From source file:org.sigmah.server.report.renderer.itext.ItextPivotTableRenderer.java
License:Open Source License
protected float[] calcColumnWidths(Document doc, PivotTableData data, List<PivotTableData.Axis> leafColumns) { // assume fixed column size float[] widths = new float[leafColumns.size() + 1]; widths[0] = doc.getPageSize().getWidth() - doc.leftMargin() - doc.rightMargin() - (leafColumns.size() * 47f); for (int i = 1; i != widths.length; ++i) { widths[i] = 47f;//from www. j a v a 2 s .c o m } return widths; }
From source file:org.sonar.report.pdf.DefaultPDFReporter.java
License:Open Source License
@Override protected void printFrontPage(Document frontPageDocument, PdfWriter frontPageWriter) throws org.dom4j.DocumentException, ReportException { try {/*from w w w.ja v a 2 s .co m*/ URL largeLogo; if (super.getConfigProperty("front.page.logo").startsWith("http://")) { largeLogo = new URL(super.getConfigProperty("front.page.logo")); } else { largeLogo = this.getClass().getClassLoader() .getResource(super.getConfigProperty("front.page.logo")); } Image logoImage = Image.getInstance(largeLogo); Rectangle pageSize = frontPageDocument.getPageSize(); float positionX = pageSize.getWidth() / 2f - logoImage.getWidth() / 2f; logoImage.setAbsolutePosition(positionX, pageSize.getHeight() - logoImage.getHeight() - 100); frontPageDocument.add(logoImage); PdfPTable title = new PdfPTable(1); title.getDefaultCell().setHorizontalAlignment(PdfPCell.ALIGN_CENTER); title.getDefaultCell().setBorder(Rectangle.NO_BORDER); String projectRow = super.getTextProperty("general.project") + ": " + super.getProject().getName(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); String dateRow = df.format(super.getProject().getMeasures().getDate()); String descriptionRow = super.getProject().getDescription(); title.addCell(new Phrase(projectRow, Style.FRONTPAGE_FONT_1)); title.addCell(new Phrase(descriptionRow, Style.FRONTPAGE_FONT_2)); title.addCell(new Phrase(dateRow, Style.FRONTPAGE_FONT_3)); title.setTotalWidth( pageSize.getWidth() - frontPageDocument.leftMargin() - frontPageDocument.rightMargin()); title.writeSelectedRows(0, -1, frontPageDocument.leftMargin(), pageSize.getHeight() - logoImage.getHeight() - 150, frontPageWriter.getDirectContent()); } catch (IOException e) { e.printStackTrace(); } catch (BadElementException e) { e.printStackTrace(); } catch (DocumentException e) { e.printStackTrace(); } }
From source file:org.sonar.report.pdf.ExecutivePDFReporter.java
License:Open Source License
@Override protected void printFrontPage(Document frontPageDocument, PdfWriter frontPageWriter) throws org.dom4j.DocumentException, ReportException { try {/*from www .ja v a 2 s. c o m*/ URL largeLogo; if (super.getConfigProperty("front.page.logo").startsWith("http://")) { largeLogo = new URL(super.getConfigProperty("front.page.logo")); } else { largeLogo = this.getClass().getClassLoader() .getResource(super.getConfigProperty("front.page.logo")); } Image logoImage = Image.getInstance(largeLogo); logoImage.scaleAbsolute(360, 200); Rectangle pageSize = frontPageDocument.getPageSize(); logoImage.setAbsolutePosition(Style.FRONTPAGE_LOGO_POSITION_X, Style.FRONTPAGE_LOGO_POSITION_Y); frontPageDocument.add(logoImage); PdfPTable title = new PdfPTable(1); title.getDefaultCell().setHorizontalAlignment(PdfPCell.ALIGN_CENTER); title.getDefaultCell().setBorder(Rectangle.NO_BORDER); String projectRow = super.getProject().getName(); String versionRow = super.getProject().getMeasures().getVersion(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); String dateRow = df.format(super.getProject().getMeasures().getDate()); String descriptionRow = super.getProject().getDescription(); title.addCell(new Phrase(projectRow, Style.FRONTPAGE_FONT_1)); title.addCell(new Phrase(versionRow, Style.FRONTPAGE_FONT_1)); title.addCell(new Phrase(descriptionRow, Style.FRONTPAGE_FONT_2)); title.addCell(new Phrase(super.getProject().getMeasure(MetricKeys.PROFILE).getDataValue(), Style.FRONTPAGE_FONT_3)); title.addCell(new Phrase(dateRow, Style.FRONTPAGE_FONT_3)); title.setTotalWidth( pageSize.getWidth() - frontPageDocument.leftMargin() - frontPageDocument.rightMargin()); title.writeSelectedRows(0, -1, frontPageDocument.leftMargin(), Style.FRONTPAGE_LOGO_POSITION_Y - 150, frontPageWriter.getDirectContent()); } catch (IOException e) { e.printStackTrace(); } catch (BadElementException e) { e.printStackTrace(); } catch (DocumentException e) { e.printStackTrace(); } }