Example usage for com.itextpdf.text.pdf PdfPTable setTotalWidth

List of usage examples for com.itextpdf.text.pdf PdfPTable setTotalWidth

Introduction

In this page you can find the example usage for com.itextpdf.text.pdf PdfPTable setTotalWidth.

Prototype

public void setTotalWidth(final float columnWidth[]) throws DocumentException 

Source Link

Document

Sets the full width of the table from the absolute column width.

Usage

From source file:com.devox.GUI.PDF.CrearReporteApto.java

@Override
public PdfPTable configurarInformacion() {
    PdfPTable table = new PdfPTable(2);
    PdfPCell cell;/*from   www. j ava2s  .co m*/
    cell = new PdfPCell(getPhraseFromChunks("FACTURA ", factura));
    cell.setBorder(PdfPCell.NO_BORDER);
    table.addCell(cell);
    cell = new PdfPCell(getPhraseFromChunks("FECHA FACTURA", ""));
    cell.setBorder(PdfPCell.NO_BORDER);
    cell.setRowspan(2);
    table.addCell(cell);
    cell = new PdfPCell(getPhraseFromChunks("FOLIO CLIENTE ", folioCliente));
    cell.setBorder(PdfPCell.NO_BORDER);
    table.addCell(cell);
    cell = new PdfPCell(getPhraseFromChunks("CLIENTE ", clienteSucursal));
    cell.setBorder(PdfPCell.NO_BORDER);
    table.addCell(cell);
    cell = new PdfPCell(getPhraseFromChunks("MOTIVO ", motivo));
    cell.setBorder(PdfPCell.NO_BORDER);
    table.addCell(cell);
    table.setTotalWidth(400);
    return table;
}

From source file:com.devox.GUI.PDF.ExportarAPDF.java

private static PdfPTable createSigningTable() {
    PdfPTable table = new PdfPTable(4);
    PdfPCell cell;/*from w ww.j  ava  2  s.  c  om*/
    cell = new PdfPCell(new Phrase("RMA", font_headertable2));
    cell.setBackgroundColor(AMARILLO);
    cell.setBorderColorBottom(BaseColor.BLACK);
    cell.setBorderColorRight(GRIS_CLARO);
    cell.setFixedHeight(25f);
    table.addCell(cell);

    cell = new PdfPCell(new Phrase("ORDEN", font_headertable2));
    cell.setBackgroundColor(AMARILLO);
    cell.setBorderColorBottom(BaseColor.BLACK);
    cell.setBorderColorLeft(GRIS_CLARO);
    cell.setBorderColorRight(GRIS_CLARO);
    cell.setBorderColorTop(AMARILLO);
    table.addCell(cell);

    cell = new PdfPCell(new Phrase("ELABOR", font_headertable2));
    cell.setBackgroundColor(AMARILLO);
    cell.setBorderColorBottom(BaseColor.BLACK);
    cell.setBorderColorLeft(GRIS_CLARO);
    cell.setBorderColorRight(GRIS_CLARO);
    cell.setBorderColorTop(AMARILLO);
    table.addCell(cell);

    cell = new PdfPCell(new Phrase("DICTAMIN QA", font_headertable2));
    cell.setBackgroundColor(AMARILLO);
    cell.setBorderColorBottom(BaseColor.BLACK);
    cell.setBorderColorLeft(GRIS_CLARO);
    cell.setBorderColorRight(GRIS_CLARO);
    cell.setBorderColorTop(AMARILLO);
    table.addCell(cell);

    cell = new PdfPCell(new Phrase("  "));
    cell.setFixedHeight(50f);
    for (int i = 0; i < 4; i++) {
        table.addCell(cell);
    }

    cell = new PdfPCell(new Phrase("  "));
    cell.setFixedHeight(25f);
    cell.setBackgroundColor(GRIS_CLARO);
    for (int i = 0; i < 2; i++) {
        table.addCell(cell);
    }

    cell = new PdfPCell(new Phrase("NOMBRE Y FIRMA", font_table));
    cell.setFixedHeight(25f);
    cell.setBackgroundColor(GRIS_CLARO);
    for (int i = 0; i < 2; i++) {
        table.addCell(cell);
    }

    table.setTotalWidth(500);
    return table;
}

From source file:com.example.admin.avoidq.billGenerated.java

private void generatePDF(final String personName) {
    new Thread(new Runnable() {
        public void run() {
            // a potentially  time consuming task

            //create a new document
            Document document = new Document();

            try {

                PdfWriter docWriter = PdfWriter.getInstance(document, new FileOutputStream(pdfFile));
                document.open();/*from   w w w .j  av  a2s  . c  o m*/

                PdfContentByte cb = docWriter.getDirectContent();
                //initialize fonts for text printing
                initializeFonts();

                //the company logo is stored in the assets which is read only
                //get the logo and print on the document
                /*
                try {
                        
                bitmap11 = encodeAsBitmap(barcode_data, BarcodeFormat.CODE_128, 600, 300);
                iv.setImageBitmap(bitmap11);
                        
                } catch (WriterException e) {
                e.printStackTrace();
                }
                * */
                InputStream inputStream = getAssets().open("sale.png");

                Bitmap bmp = null;//BitmapFactory.decodeStream(inputStream);
                bmp = bitmap11;
                ByteArrayOutputStream stream = new ByteArrayOutputStream();
                bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);

                Image companyLogo = Image.getInstance(stream.toByteArray());
                companyLogo.setAbsolutePosition(25, 700);
                companyLogo.scalePercent(65);
                document.add(companyLogo);
                Calendar calendar = Calendar.getInstance();
                SimpleDateFormat df1 = new SimpleDateFormat("dd-MM-yyyy");
                String formattedDate = df1.format(calendar.getTime());

                //creating a sample invoice with some customer data
                createHeadings(cb, 400, 780, "Date :");
                createHeadings(cb, 430, 780, formattedDate);

                String fname = customer.getName();
                String lname = customer.getSurname();
                createHeadings(cb, 400, 765, "Customer :");
                createHeadings(cb, 445, 765, fname + " " + lname);

                String mob = customer.getMobile_no();
                createHeadings(cb, 400, 750, "Mobile No :");
                createHeadings(cb, 445, 750, mob);

                createHeadings(cb, 400, 735, "Shop :");
                createHeadings(cb, 430, 735, "Empress Mall");

                createHeadings(cb, 400, 720, "City :");
                createHeadings(cb, 430, 720, "Nagpur");
                // createHeadings(cb,400,720,"Country");

                //list all the products sold to the customer
                float[] columnWidths = { 1.5f, 3f, 2.5f, 2.5f, 2f, 2f };
                //create PDF table with the given widths
                PdfPTable table = new PdfPTable(columnWidths);
                // set table width a percentage of the page width
                table.setTotalWidth(500f);

                PdfPCell cell = new PdfPCell(new Phrase("S.NO"));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                table.addCell(cell);
                cell = new PdfPCell(new Phrase("Item Name"));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                table.addCell(cell);
                cell = new PdfPCell(new Phrase("Price"));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                table.addCell(cell);
                cell = new PdfPCell(new Phrase("Quantity"));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                table.addCell(cell);
                cell = new PdfPCell(new Phrase("Discount"));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                table.addCell(cell);
                cell = new PdfPCell(new Phrase("Amount"));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                table.addCell(cell);
                table.setHeaderRows(1);

                /*DecimalFormat df = new DecimalFormat("0.000");
                for(int i=0; i < 10; i++ ){
                    double price = Double.valueOf(df.format(Math.random() * 10));
                    double extPrice = price * (i+1) ;
                    table.addCell(String.valueOf(i+1));
                    table.addCell("ITEM" + String.valueOf(i+1));
                    table.addCell(String.valueOf(5*i));
                    table.addCell(String.valueOf(1));
                    table.addCell(String.valueOf(i)+ " %");
                    table.addCell(df.format(extPrice));
                }*/
                int sr = 0;
                DecimalFormat df = new DecimalFormat("0.0");
                double total_price = 0;
                //Log.i("c0","c0 = "+carts[0].getItemname()+" "+String.valueOf(carts[0].getPrice()));
                // Log.i("c1","c1 = "+carts[1].getItemname()+" "+String.valueOf(carts[1].getPrice()));
                for (Cart cd : carts) {
                    Log.i("cartscheck", "carts check = " + cd.getBarcode() + " " + cd.getItemname() + " "
                            + String.valueOf(cd.getPrice()));
                }
                for (Cart c : carts) {
                    double price = c.getPrice();
                    int quantity = c.getQuantity();
                    price = (price / quantity);
                    double discont = c.getDiscount();
                    sr++;
                    table.addCell(String.valueOf(sr));
                    table.addCell(c.getItemname());
                    table.addCell(df.format(price));
                    table.addCell(String.valueOf(quantity));
                    table.addCell(df.format(discont) + " %");

                    double total = (price * quantity);
                    total_price = total_price + total;
                    Log.i("total", "total in for loop = " + String.valueOf(total));
                    table.addCell(df.format(total));

                }
                float headerHeight = table.getHeaderHeight();
                Log.i("headerHeight", String.valueOf(headerHeight));
                //absolute location to print the PDF table from
                table.writeSelectedRows(0, -1, document.leftMargin(), 650, docWriter.getDirectContent());
                float total_height = table.getTotalHeight();
                Log.i("total_height", String.valueOf(total_height));
                createHeadings(cb, 420, 750f - 125f - total_height, "Total Price = ");
                createHeadings(cb, 475, 750f - 125f - total_height, String.valueOf(total_price));

                //print the signature image along with the persons name
                inputStream = getAssets().open("user.png");
                bmp = BitmapFactory.decodeStream(inputStream);
                stream = new ByteArrayOutputStream();
                bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
                Image signature = Image.getInstance(stream.toByteArray());
                signature.setAbsolutePosition(400f, 750f - 125f - total_height - 60f);
                signature.scalePercent(35f);
                document.add(signature);

                createHeadings(cb, 450, 750f - 125f - total_height - 80f, fname + " " + lname);

                document.close();
            } catch (Exception e) {
                e.printStackTrace();
            }

            //PDF file is now ready to be sent to the bluetooth printer using PrintShare
            Intent i = new Intent(Intent.ACTION_VIEW);
            //   i.setPackage("com.dynamixsoftware.printershare");
            i.setDataAndType(Uri.fromFile(pdfFile), "application/pdf");
            startActivity(i);

        }
    }).start();

}

From source file:com.hris.payroll.reports.AdvancesReportPdf.java

public AdvancesReportPdf(int branchId, Date payrollDate, String reportType) {
    this.branchId = branchId;
    this.payrollDate = payrollDate;
    this.reportType = reportType;

    Document document = null;//from  www. ja v a 2  s .  c  om
    Rectangle pageSize = new Rectangle(318, 825);

    try {
        document = new Document(PageSize.A4.rotate(), 37, 37, 37, 37);
        PdfWriter writer = PdfWriter.getInstance(document, outputStream);
        document.open();

        int tradeId = cs.getTradeIdByBranchId(branchId);
        int corporateId = cs.getCorporateIdByTradeId(tradeId);

        Paragraph reportHeader = new Paragraph();
        reportHeader.setAlignment(Element.ALIGN_LEFT);
        reportHeader.add(new Phrase(cs.getCorporateById(corporateId).toUpperCase(), header));
        document.add(reportHeader);

        reportHeader = new Paragraph();
        reportHeader.setAlignment(Element.ALIGN_LEFT);
        reportHeader.add(new Phrase("Trade: " + cs.getTradeById(tradeId).toUpperCase(), header));
        document.add(reportHeader);

        reportHeader = new Paragraph();
        reportHeader.setAlignment(Element.ALIGN_LEFT);
        reportHeader.add(new Phrase("Branch: " + cs.getBranchById(getBranchId()).toUpperCase(), header));
        document.add(reportHeader);

        reportHeader = new Paragraph();
        reportHeader.setAlignment(Element.ALIGN_LEFT);
        reportHeader.add(new Phrase("Advances Type: " + getReportType(), content));
        document.add(reportHeader);

        reportHeader = new Paragraph();
        reportHeader.setAlignment(Element.ALIGN_LEFT);
        reportHeader.add(new Phrase("Payroll Period: " + CommonUtil.changeDateFormat(
                ps.findPayrollRegisterByBranch(getBranchId(), getPayrollDate()).getPayrollDate().toString()),
                content));
        document.add(reportHeader);

        reportHeader = new Paragraph();
        reportHeader.setAlignment(Element.ALIGN_LEFT);
        reportHeader.add(new Phrase("Cut-off Date: "
                + CommonUtil.changeDateFormat(ps.findPayrollRegisterByBranch(getBranchId(), getPayrollDate())
                        .getAttendancePeriodFrom().toString())
                + " - "
                + CommonUtil.changeDateFormat(ps.findPayrollRegisterByBranch(getBranchId(), getPayrollDate())
                        .getAttendancePeriodTo().toString()),
                content));
        document.add(reportHeader);

        document.add(Chunk.NEWLINE);
        document.add(Chunk.NEWLINE);

        PdfPTable table = new PdfPTable(3);
        //            table.setWidthPercentage(100);
        table.setTotalWidth(new float[] { 180, 120, 300 });
        table.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.getDefaultCell().setBorder(Rectangle.NO_BORDER);

        PdfPCell cellLabel = new PdfPCell();
        Paragraph parLabel = new Paragraph();
        parLabel.add(new Phrase("EMPLOYEE", boldFont));
        parLabel.setAlignment(Element.ALIGN_LEFT);
        cellLabel.addElement(parLabel);
        cellLabel.setVerticalAlignment(Element.ALIGN_MIDDLE);
        cellLabel.setBorder(Rectangle.BOTTOM);
        table.addCell(cellLabel);

        cellLabel = new PdfPCell();
        parLabel = new Paragraph();
        parLabel.add(new Phrase("AMOUNT", boldFont));
        parLabel.setAlignment(Element.ALIGN_RIGHT);
        cellLabel.addElement(parLabel);
        cellLabel.setVerticalAlignment(Element.ALIGN_MIDDLE);
        cellLabel.setBorder(Rectangle.BOTTOM);
        table.addCell(cellLabel);

        cellLabel = new PdfPCell();
        parLabel = new Paragraph();
        parLabel.add(new Phrase("PARTICULARS", boldFont));
        parLabel.setAlignment(Element.ALIGN_LEFT);
        cellLabel.addElement(parLabel);
        cellLabel.setPaddingLeft(20);
        cellLabel.setVerticalAlignment(Element.ALIGN_MIDDLE);
        cellLabel.setBorder(Rectangle.BOTTOM);
        table.addCell(cellLabel);

        String middlename;
        double grandTotalAmount = 0;
        double subTotalAmount;
        int prCounter = 0;
        int advancesCounter;
        for (PayrollRegister pr : ps.findByBranch(getBranchId(), getPayrollDate())) {
            if (pr.getMiddlename().isEmpty() || pr.getMiddlename() == null) {
                middlename = "";
            } else {
                middlename = pr.getMiddlename().toUpperCase();
            }
            String employee = pr.getLastname().toUpperCase() + ", " + pr.getFirstname().toUpperCase() + " "
                    + middlename;
            subTotalAmount = 0;
            advancesCounter = 0;
            for (Advances a : as.findByPayroll(pr.getPayrollId(), getReportType())) {
                cellLabel = new PdfPCell();
                parLabel = new Paragraph();
                if (advancesCounter == 0) {
                    parLabel.add(new Phrase(employee, content));
                } else {
                    parLabel.add(new Phrase("", content));
                }
                parLabel.setAlignment(Element.ALIGN_LEFT);
                cellLabel.addElement(parLabel);
                cellLabel.setVerticalAlignment(Element.ALIGN_MIDDLE);
                cellLabel.setBorder(Rectangle.NO_BORDER);
                table.addCell(cellLabel);

                cellLabel = new PdfPCell();
                parLabel = new Paragraph();
                parLabel.add(new Phrase(CommonUtil.formatNumValue(a.getAmount()), content));
                parLabel.setAlignment(Element.ALIGN_RIGHT);
                cellLabel.addElement(parLabel);
                cellLabel.setVerticalAlignment(Element.ALIGN_MIDDLE);
                subTotalAmount = subTotalAmount + a.getAmount();
                advancesCounter++;
                if (advancesCounter == as.findByPayroll(pr.getPayrollId(), getReportType()).size()) {
                    cellLabel.setBorder(Rectangle.BOTTOM);
                } else {
                    cellLabel.setBorder(Rectangle.NO_BORDER);
                }
                table.addCell(cellLabel);

                cellLabel = new PdfPCell();
                parLabel = new Paragraph();
                parLabel.add(new Phrase(a.getParticulars(), content));
                parLabel.setAlignment(Element.ALIGN_LEFT);
                cellLabel.addElement(parLabel);
                cellLabel.setPaddingLeft(20);
                cellLabel.setVerticalAlignment(Element.ALIGN_MIDDLE);
                cellLabel.setBorder(Rectangle.NO_BORDER);
                table.addCell(cellLabel);
            }

            if (subTotalAmount != 0) {
                subTotal(table, subTotalAmount);
            }

            grandTotalAmount = grandTotalAmount + subTotalAmount;
            prCounter++;
        }

        grandTotal(table, grandTotalAmount);
        document.add(table);
    } catch (DocumentException ex) {
        Logger.getLogger(AdvancesReportPdf.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
        document.close();
    }

}

From source file:com.hris.payroll.reports.AdvancesSummaryReportPdf.java

public AdvancesSummaryReportPdf(int branchId, Date payrollDate) {
    this.branchId = branchId;
    this.payrollDate = payrollDate;

    Document document = null;//  ww  w. j a va  2s . c  o m
    Rectangle pageSize = new Rectangle(318, 825);

    try {
        document = new Document(PageSize.A4.rotate(), 37, 37, 37, 37);
        PdfWriter writer = PdfWriter.getInstance(document, outputStream);
        document.open();

        int tradeId = cs.getTradeIdByBranchId(branchId);
        int corporateId = cs.getCorporateIdByTradeId(tradeId);

        Paragraph reportHeader = new Paragraph();
        reportHeader.setAlignment(Element.ALIGN_LEFT);
        reportHeader.add(new Phrase(cs.getCorporateById(corporateId).toUpperCase(), header));
        document.add(reportHeader);

        reportHeader = new Paragraph();
        reportHeader.setAlignment(Element.ALIGN_LEFT);
        reportHeader.add(new Phrase("Trade: " + cs.getTradeById(tradeId).toUpperCase(), header));
        document.add(reportHeader);

        reportHeader = new Paragraph();
        reportHeader.setAlignment(Element.ALIGN_LEFT);
        reportHeader.add(new Phrase("Branch: " + cs.getBranchById(getBranchId()).toUpperCase(), header));
        document.add(reportHeader);

        reportHeader = new Paragraph();
        reportHeader.setAlignment(Element.ALIGN_LEFT);
        reportHeader.add(new Phrase("Advances Summary", content));
        document.add(reportHeader);

        reportHeader = new Paragraph();
        reportHeader.setAlignment(Element.ALIGN_LEFT);
        reportHeader.add(new Phrase("Payroll Period: " + CommonUtil.changeDateFormat(
                ps.findPayrollRegisterByBranch(getBranchId(), getPayrollDate()).getPayrollDate().toString()),
                content));
        document.add(reportHeader);

        reportHeader = new Paragraph();
        reportHeader.setAlignment(Element.ALIGN_LEFT);
        reportHeader.add(new Phrase("Cut-off Date: "
                + CommonUtil.changeDateFormat(ps.findPayrollRegisterByBranch(getBranchId(), getPayrollDate())
                        .getAttendancePeriodFrom().toString())
                + " - "
                + CommonUtil.changeDateFormat(ps.findPayrollRegisterByBranch(getBranchId(), getPayrollDate())
                        .getAttendancePeriodTo().toString()),
                content));
        document.add(reportHeader);

        document.add(Chunk.NEWLINE);
        document.add(Chunk.NEWLINE);

        PdfPTable table = new PdfPTable(4);
        //            table.setWidthPercentage(100);
        table.setTotalWidth(new float[] { 180, 120, 130, 300 });
        table.setHorizontalAlignment(Element.ALIGN_CENTER);
        table.getDefaultCell().setBorder(Rectangle.NO_BORDER);

        PdfPCell cellLabel = new PdfPCell();
        Paragraph parLabel = new Paragraph();
        parLabel.add(new Phrase("EMPLOYEE", boldFont));
        parLabel.setAlignment(Element.ALIGN_LEFT);
        cellLabel.addElement(parLabel);
        cellLabel.setVerticalAlignment(Element.ALIGN_MIDDLE);
        cellLabel.setBorder(Rectangle.BOTTOM);
        table.addCell(cellLabel);

        cellLabel = new PdfPCell();
        parLabel = new Paragraph();
        parLabel.add(new Phrase("AMOUNT", boldFont));
        parLabel.setAlignment(Element.ALIGN_RIGHT);
        cellLabel.addElement(parLabel);
        cellLabel.setVerticalAlignment(Element.ALIGN_MIDDLE);
        cellLabel.setBorder(Rectangle.BOTTOM);
        table.addCell(cellLabel);

        cellLabel = new PdfPCell();
        parLabel = new Paragraph();
        parLabel.add(new Phrase("ADVANCES TYPE", boldFont));
        parLabel.setAlignment(Element.ALIGN_LEFT);
        cellLabel.addElement(parLabel);
        cellLabel.setPaddingLeft(20);
        cellLabel.setVerticalAlignment(Element.ALIGN_MIDDLE);
        cellLabel.setBorder(Rectangle.BOTTOM);
        table.addCell(cellLabel);

        cellLabel = new PdfPCell();
        parLabel = new Paragraph();
        parLabel.add(new Phrase("PARTICULARS", boldFont));
        parLabel.setAlignment(Element.ALIGN_LEFT);
        cellLabel.addElement(parLabel);
        cellLabel.setPaddingLeft(20);
        cellLabel.setVerticalAlignment(Element.ALIGN_MIDDLE);
        cellLabel.setBorder(Rectangle.BOTTOM);
        table.addCell(cellLabel);

        String middlename;
        double grandTotalAmount = 0;
        double subTotalAmount;
        int prCounter = 0;
        int advancesCounter;
        for (PayrollRegister pr : ps.findByBranch(getBranchId(), getPayrollDate())) {
            if (pr.getMiddlename().isEmpty() || pr.getMiddlename() == null) {
                middlename = "";
            } else {
                middlename = pr.getMiddlename().toUpperCase();
            }
            String employee = pr.getLastname().toUpperCase() + ", " + pr.getFirstname().toUpperCase() + " "
                    + middlename;
            subTotalAmount = 0;
            advancesCounter = 0;
            for (Advances a : as.findByPayroll(pr.getPayrollId())) {
                cellLabel = new PdfPCell();
                parLabel = new Paragraph();
                if (advancesCounter == 0) {
                    parLabel.add(new Phrase(employee, content));
                } else {
                    parLabel.add(new Phrase("", content));
                }
                parLabel.setAlignment(Element.ALIGN_LEFT);
                cellLabel.addElement(parLabel);
                cellLabel.setVerticalAlignment(Element.ALIGN_MIDDLE);
                cellLabel.setBorder(Rectangle.NO_BORDER);
                table.addCell(cellLabel);

                cellLabel = new PdfPCell();
                parLabel = new Paragraph();
                parLabel.add(new Phrase(CommonUtil.formatNumValue(a.getAmount()), content));
                parLabel.setAlignment(Element.ALIGN_RIGHT);
                cellLabel.addElement(parLabel);
                cellLabel.setVerticalAlignment(Element.ALIGN_MIDDLE);
                subTotalAmount = subTotalAmount + a.getAmount();
                advancesCounter++;
                if (advancesCounter == as.findByPayroll(pr.getPayrollId()).size()) {
                    cellLabel.setBorder(Rectangle.BOTTOM);
                } else {
                    cellLabel.setBorder(Rectangle.NO_BORDER);
                }
                table.addCell(cellLabel);

                cellLabel = new PdfPCell();
                parLabel = new Paragraph();
                parLabel.add(new Phrase(a.getAdvanceType(), content));
                parLabel.setAlignment(Element.ALIGN_LEFT);
                cellLabel.addElement(parLabel);
                cellLabel.setPaddingLeft(20);
                cellLabel.setVerticalAlignment(Element.ALIGN_MIDDLE);
                cellLabel.setBorder(Rectangle.NO_BORDER);
                table.addCell(cellLabel);

                cellLabel = new PdfPCell();
                parLabel = new Paragraph();
                parLabel.add(new Phrase(a.getParticulars(), content));
                parLabel.setAlignment(Element.ALIGN_LEFT);
                cellLabel.addElement(parLabel);
                cellLabel.setPaddingLeft(20);
                cellLabel.setVerticalAlignment(Element.ALIGN_MIDDLE);
                cellLabel.setBorder(Rectangle.NO_BORDER);
                table.addCell(cellLabel);
            }

            if (subTotalAmount != 0) {
                subTotal(table, subTotalAmount);
            }

            grandTotalAmount = grandTotalAmount + subTotalAmount;
            prCounter++;
        }

        grandTotal(table, grandTotalAmount);
        document.add(table);
    } catch (DocumentException ex) {
        Logger.getLogger(AdvancesReportPdf.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
        document.close();
    }
}

From source file:com.hris.payroll.reports.PayslipReportPDF.java

private PdfPTable leftColumnTable(PayrollRegister pr, Date payrollDate) throws DocumentException {
    PdfPTable table = new PdfPTable(3);
    table.setTotalWidth(new float[] { 120, 20, 103 });
    table.setWidthPercentage(100);//from   w w w  . j  a  v a  2  s.c o  m
    table.setHorizontalAlignment(Element.ALIGN_LEFT);
    table.setLockedWidth(true);

    PdfPCell cellTitle = new PdfPCell();
    cellTitle.setColspan(3);
    Paragraph parTitle = new Paragraph();
    parTitle.add(new Phrase("Payslip: ", header));
    parTitle.setAlignment(Element.ALIGN_CENTER);
    cellTitle.addElement(parTitle);
    cellTitle.setBorder(cellBorder);
    table.addCell(cellTitle);

    PdfPCell cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(3);
    Paragraph parLabel = new Paragraph();
    parLabel.add(
            new Phrase("Payroll Date: " + CommonUtil.convertDateFormat(getPayrollDate().toString()), content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    //        PdfPCell cellValue = new PdfPCell();
    //        cellValue.setUseAscender(true);
    //        Paragraph parValue = new Paragraph();
    //        parValue.add(new Phrase(CommonUtil.convertDateFormat(getPayrollDate().toString()), content));
    //        parValue.setAlignment(Element.ALIGN_RIGHT);
    //        cellValue.addElement(parValue);     
    //        cellValue.setBorder(cellBorder);
    //        table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(3);
    parLabel = new Paragraph();
    parLabel.add(
            new Phrase(
                    "Cut-off Date: " + CommonUtil.changeDateFormat(pr.getAttendancePeriodFrom().toString())
                            + " - " + CommonUtil.changeDateFormat(pr.getAttendancePeriodTo().toString()),
                    content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    //        PdfPCell cellValue = new PdfPCell();
    //        cellValue.setUseAscender(true);
    //        Paragraph parValue = new Paragraph();
    //        parValue.add(new Phrase(CommonUtil.convertDateFormat(pr.getAttendancePeriodFrom().toString())+" - "+CommonUtil.convertDateFormat(pr.getAttendancePeriodFrom().toString()), content));
    //        parValue.setAlignment(Element.ALIGN_RIGHT);
    //        cellValue.addElement(parValue);     
    //        cellValue.setBorder(cellBorder);
    //        table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(3);
    parLabel = new Paragraph();
    String middlename;
    if (pr.getMiddlename() == null || pr.getMiddlename().isEmpty()) {
        middlename = " ";
    } else {
        middlename = String.valueOf(pr.getMiddlename().toUpperCase().charAt(0)) + ". ";
    }
    String name = pr.getLastname().toUpperCase() + ", " + pr.getFirstname().toUpperCase() + " " + middlename;
    parLabel.add(new Phrase("Employee Name: " + name, content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    //        cellValue = new PdfPCell();
    ////        cellValue.setUseAscender(true);
    //        parValue = new Paragraph();
    //        parValue.add(new Phrase(pr.getLastname().toUpperCase()+", "+pr.getFirstname().toUpperCase()+" "+pr.getMiddlename().toUpperCase().charAt(0)+".", employeeName));
    ////        parValue.add(new Phrase("NAME", content));
    //        parValue.setAlignment(Element.ALIGN_RIGHT);
    //        cellValue.addElement(parValue);     
    //        cellValue.setBorder(cellBorder);
    //        table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(3);
    parLabel = new Paragraph();
    String position = (ephs.findByEmployee(pr.getEmployeeId()).getPosition() == null) ? "N/A"
            : ephs.findByEmployee(pr.getEmployeeId()).getPosition().toUpperCase();
    parLabel.add(new Phrase("POSITION: " + position, smallerFont));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    //        cellValue = new PdfPCell();
    //        cellValue.setUseAscender(true);
    //        parValue = new Paragraph();
    //        parValue.add(new Phrase(CommonUtil.convertDateFormat(new Date().toString()), content));
    //        parValue.setAlignment(Element.ALIGN_RIGHT);
    //        cellValue.addElement(parValue);     
    //        cellValue.setBorder(cellBorder);
    //        table.addCell(cellValue);

    cellLabel = new PdfPCell();
    //        cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.add(new Phrase("Monthly/Daily Rate: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    PdfPCell cellValue = new PdfPCell();
    //        cellValue.setUseAscender(true);
    Paragraph parValue = new Paragraph();
    parValue.add(new Phrase(String.valueOf(pr.getRate()), content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.add(new Phrase("Half-month Rate: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(String.valueOf(pr.getHalfMonthSalary()), content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(halfMonthRate);
    parLabel.add(new Phrase("Overtime: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(
            new Phrase(String.valueOf(CommonUtil.roundOffToTwoDecimalPlaces(pr.getOvertimePay())), content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(halfMonthRate);
    parLabel.add(new Phrase("Holiday Premium: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    double premium = (pr.getLegalHolidayPay() + pr.getSpecialHolidayPay())
            - (pr.getTotalLatesHolidayDeduction() + pr.getTotalUndertimeHolidayDeduction());
    parValue.add(new Phrase(String.valueOf(CommonUtil.roundOffToTwoDecimalPlaces(premium)), content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(halfMonthRate);
    parLabel.add(new Phrase("Working Day-off: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(String.valueOf(CommonUtil.roundOffToTwoDecimalPlaces(pr.getWorkingDayOffPay())),
            content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(halfMonthRate);
    parLabel.add(new Phrase("Night Differential: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(String.valueOf(CommonUtil.roundOffToTwoDecimalPlaces(pr.getNightDifferential())),
            content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(halfMonthRate);
    parLabel.add(new Phrase("Absences/Lates/Undertime: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    double alu = pr.getAbsences() + pr.getTotalLatesDeduction() + pr.getTotalUndertimeDeduction();
    parValue.add(new Phrase(String.valueOf(CommonUtil.roundOffToTwoDecimalPlaces(alu)), content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.add(new Phrase("GROSS PAY: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(String.valueOf(CommonUtil.roundOffToTwoDecimalPlaces(pr.getGrossPay())), content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(Rectangle.TOP | Rectangle.BOTTOM);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(halfMonthRate);
    parLabel.add(new Phrase("Allowances: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(" ", content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(allowances);
    parLabel.add(new Phrase("COLA: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(String.valueOf(pr.getColaAllowance()), content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(allowances);
    parLabel.add(new Phrase("Meal Allowance: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(String.valueOf(pr.getMealAllowance()), content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(allowances);
    parLabel.add(new Phrase("AFL: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(String.valueOf(pr.getAllowanceForLiquidation()), content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(allowances);
    parLabel.add(new Phrase("Transportation Allowance: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    cellLabel.setColspan(2);
    parValue = new Paragraph();
    parValue.add(new Phrase(String.valueOf(pr.getTransportationAllowance()), content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(allowances);
    parLabel.add(new Phrase("Housing Allowance: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(String.valueOf(pr.getOtherAllowance()), content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(allowances);
    parLabel.add(new Phrase("Communications Allowance: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(String.valueOf(pr.getCommunicationAllowance()), content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.add(new Phrase("TOTAL PAY: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    double totalPay = pr.getGrossPay() + pr.getCommunicationAllowance() + pr.getTransportationAllowance()
            + pr.getColaAllowance() + pr.getPerDiemAllowance() + pr.getMealAllowance() + pr.getOtherAllowance()
            + pr.getAllowanceForLiquidation();
    parValue.add(new Phrase(String.valueOf(CommonUtil.roundOffToTwoDecimalPlaces(totalPay)), content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(Rectangle.TOP | Rectangle.BOTTOM);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.add(new Phrase("DEDUCTIONS: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(" ", content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(halfMonthRate);
    parLabel.add(new Phrase("SSS Contribution: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(String.valueOf(CommonUtil.roundOffToTwoDecimalPlaces(pr.getSss())), content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(halfMonthRate);
    parLabel.add(new Phrase("PHIC Contribution: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(String.valueOf(CommonUtil.roundOffToTwoDecimalPlaces(pr.getPhic())), content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(halfMonthRate);
    parLabel.add(new Phrase("HDMF Contribution: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(String.valueOf(CommonUtil.roundOffToTwoDecimalPlaces(pr.getHdmf())), content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(halfMonthRate);
    parLabel.add(new Phrase("Withholoding Taxes: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(String.valueOf(CommonUtil.roundOffToTwoDecimalPlaces(pr.getTax())), content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(halfMonthRate);
    parLabel.add(new Phrase("SSS Loan: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(
            String.valueOf(CommonUtil
                    .roundOffToTwoDecimalPlaces(as.findAdvancesTotalAmount(pr.getPayrollId(), "sss loan"))),
            content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(halfMonthRate);
    parLabel.add(new Phrase("HDMF Loan: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(
            String.valueOf(CommonUtil
                    .roundOffToTwoDecimalPlaces(as.findAdvancesTotalAmount(pr.getPayrollId(), "hdmf loan"))),
            content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(halfMonthRate);
    parLabel.add(new Phrase("Additional HDMF Contribution: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(
            new Phrase(
                    String.valueOf(CommonUtil.roundOffToTwoDecimalPlaces(
                            as.findAdvancesTotalAmount(pr.getPayrollId(), "additional HDMF contribution"))),
                    content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(halfMonthRate);
    parLabel.add(new Phrase("PAG-IBIG 2: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(
            String.valueOf(CommonUtil
                    .roundOffToTwoDecimalPlaces(as.findAdvancesTotalAmount(pr.getPayrollId(), "pag-ibig ii"))),
            content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(halfMonthRate);
    parLabel.add(new Phrase("Advances to O/E: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(" ", content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(allowances);
    parLabel.add(new Phrase("Cash Bond: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(
            String.valueOf(CommonUtil
                    .roundOffToTwoDecimalPlaces(as.findAdvancesTotalAmount(pr.getPayrollId(), "cash bond"))),
            content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(allowances);
    parLabel.add(new Phrase("Cash Advance: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(
            String.valueOf(CommonUtil
                    .roundOffToTwoDecimalPlaces(as.findAdvancesTotalAmount(pr.getPayrollId(), "cash advance"))),
            content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(allowances);
    parLabel.add(new Phrase("Lending: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(
            String.valueOf(CommonUtil
                    .roundOffToTwoDecimalPlaces(as.findAdvancesTotalAmount(pr.getPayrollId(), "lending"))),
            content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(allowances);
    parLabel.add(new Phrase("Jewelry: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(
            String.valueOf(CommonUtil
                    .roundOffToTwoDecimalPlaces(as.findAdvancesTotalAmount(pr.getPayrollId(), "jewelry"))),
            content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(allowances);
    parLabel.add(new Phrase("Staffhouse: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(
            String.valueOf(CommonUtil
                    .roundOffToTwoDecimalPlaces(as.findAdvancesTotalAmount(pr.getPayrollId(), "staffhouse"))),
            content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(allowances);
    parLabel.add(new Phrase("Hotel and Restaurant Charges: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(
            new Phrase(
                    String.valueOf(CommonUtil.roundOffToTwoDecimalPlaces(
                            as.findAdvancesTotalAmount(pr.getPayrollId(), "hotel and restaurant charges"))),
                    content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(allowances);
    parLabel.add(new Phrase("Cash Shortages: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(String.valueOf(CommonUtil
            .roundOffToTwoDecimalPlaces(as.findAdvancesTotalAmount(pr.getPayrollId(), "cash shortages"))),
            content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(allowances);
    parLabel.add(new Phrase("Employee Charges: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(String.valueOf(CommonUtil
            .roundOffToTwoDecimalPlaces(as.findAdvancesTotalAmount(pr.getPayrollId(), "employee charges"))),
            content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(allowances);
    parLabel.add(new Phrase("ATM Initial Deposit: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(String.valueOf(CommonUtil
            .roundOffToTwoDecimalPlaces(as.findAdvancesTotalAmount(pr.getPayrollId(), "atm initial deposit"))),
            content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(allowances);
    parLabel.add(new Phrase("Others__________________: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    double otherCharges = as.findAdvancesTotalAmount(pr.getPayrollId(), "advances to o/e")
            + as.findAdvancesTotalAmount(pr.getPayrollId(), "other charges");
    parValue.add(new Phrase(String.valueOf(CommonUtil.roundOffToTwoDecimalPlaces(otherCharges)), content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.add(new Phrase("TOTAL DEDUCTIONS:", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    double totalDeductions = as.findAdvancesTotalAmount(pr.getPayrollId()) + pr.getTax() + pr.getPhic()
            + pr.getHdmf() + pr.getSss();
    parValue.add(new Phrase(String.valueOf(CommonUtil.roundOffToTwoDecimalPlaces(totalDeductions)), content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(Rectangle.TOP | Rectangle.BOTTOM);
    table.addCell(cellValue);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    cellLabel.setColspan(2);
    parLabel = new Paragraph();
    parLabel.add(new Phrase("NET PAY:", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    double netPay = CommonUtil.roundOffToTwoDecimalPlaces(totalPay - totalDeductions);
    parValue.add(new Phrase(String.valueOf(CommonUtil.roundOffToTwoDecimalPlaces(netPay)), content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    /***************************************************************************/
    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    parLabel = new Paragraph();
    parLabel.add(new Phrase("Adjustments:", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    parLabel = new Paragraph();
    parLabel.add(new Phrase(" ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(
            new Phrase(String.valueOf(CommonUtil.roundOffToTwoDecimalPlaces(pr.getAdjustments())), content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    /***************************************************************************/
    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    parLabel = new Paragraph();
    //        parLabel.add(new Phrase("_____________________________", content));
    parLabel.add(new Phrase(" ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(Rectangle.TOP | Rectangle.BOTTOM);
    table.addCell(cellLabel);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    parLabel = new Paragraph();
    parLabel.add(new Phrase(" ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    //        parValue.add(new Phrase(String.valueOf(totalPay - totalDeductions), content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    /***************************************************************************/
    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    parLabel = new Paragraph();
    parLabel.add(new Phrase("TOTAL AMOUNT TO BE RECEIVED:", smallFont));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    parLabel = new Paragraph();
    parLabel.setIndentationLeft(halfMonthRate);
    parLabel.add(new Phrase(" ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase(String.valueOf(CommonUtil.roundOffToTwoDecimalPlaces(netPay + pr.getAdjustments())),
            content));
    parValue.setAlignment(Element.ALIGN_RIGHT);
    cellValue.addElement(parValue);
    cellValue.setBorder(Rectangle.TOP | Rectangle.BOTTOM);
    table.addCell(cellValue);

    /***************************************************************************/
    cellLabel = new PdfPCell();
    //        cellLabel.setUseAscender(true);
    parLabel = new Paragraph();
    parLabel.add(new Phrase("Prepared By: ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellLabel = new PdfPCell();
    //        cellLabel.setUseAscender(true);
    parLabel = new Paragraph();
    parLabel.add(new Phrase(" ", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    //        cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase("Conforme: ", content));
    parValue.setAlignment(Element.ALIGN_LEFT);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    /***************************************************************************/
    int userId = ubas.findUserByBranch(getBranchId());
    String employeeId = us.findEmployeeIdByUserId(userId);
    Employee e = es.findEmployeeById(employeeId);

    String payrollClerkMiddlename;
    if (e.getMiddlename() == null || e.getMiddlename().isEmpty()) {
        payrollClerkMiddlename = " ";
    } else {
        payrollClerkMiddlename = String.valueOf(e.getMiddlename().toUpperCase().charAt(0)) + ". ";
    }
    String payrollClerk = e.getFirstname().toUpperCase() + " " + payrollClerkMiddlename
            + e.getLastname().toUpperCase();

    String employeeMiddlename;
    if (pr.getMiddlename() == null || pr.getMiddlename().isEmpty()) {
        employeeMiddlename = " ";
    } else {
        employeeMiddlename = String.valueOf(pr.getMiddlename().toUpperCase().charAt(0)) + ". ";
    }
    String employee = pr.getFirstname().toUpperCase() + " " + employeeMiddlename
            + pr.getLastname().toUpperCase();

    cellLabel = new PdfPCell();
    cellLabel.setPaddingTop(30);
    parLabel = new Paragraph();
    parLabel.add(new Phrase(payrollClerk, smallerFont));
    parLabel.setAlignment(Element.ALIGN_CENTER);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(Rectangle.BOTTOM);
    table.addCell(cellLabel);

    cellLabel = new PdfPCell();
    cellLabel.setPaddingTop(30);
    parLabel = new Paragraph();
    parLabel.add(new Phrase(" ", content));
    parLabel.setAlignment(Element.ALIGN_CENTER);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setPaddingTop(30);
    parValue = new Paragraph();
    parValue.add(new Phrase(employee, smallerFont));
    parValue.setAlignment(Element.ALIGN_CENTER);
    cellValue.addElement(parValue);
    cellValue.setBorder(Rectangle.BOTTOM);
    table.addCell(cellValue);

    /***************************************************************************/
    cellLabel = new PdfPCell();
    cellLabel.setUseAscender(true);
    parLabel = new Paragraph();
    //        parLabel.setIndentationLeft(halfMonthRate);
    parLabel.add(new Phrase("Payroll Clerk", content));
    parLabel.setAlignment(Element.ALIGN_CENTER);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellLabel = new PdfPCell();
    parLabel = new Paragraph();
    //        parLabel.setIndentationLeft(halfMonthRate);
    parLabel.add(new Phrase("", content));
    parLabel.setAlignment(Element.ALIGN_LEFT);
    cellLabel.addElement(parLabel);
    cellLabel.setBorder(cellBorder);
    table.addCell(cellLabel);

    cellValue = new PdfPCell();
    cellValue.setUseAscender(true);
    parValue = new Paragraph();
    parValue.add(new Phrase("Employee", content));
    parValue.setAlignment(Element.ALIGN_CENTER);
    cellValue.addElement(parValue);
    cellValue.setBorder(cellBorder);
    table.addCell(cellValue);

    return table;
}

From source file:com.hrms.struts.Reportsaction.java

public String employeePdf() {
    HttpServletResponse res = ServletActionContext.getResponse();
    Rectangle envelope = new Rectangle(1300, 1300);
    Document d = new Document(envelope, 10f, 10f, 100f, 0f);
    ByteArrayOutputStream b = new ByteArrayOutputStream();
    d.addTitle("Salary Abstract For the Month of JUNE 2016");
    Font ffont = new Font(Font.FontFamily.TIMES_ROMAN, 25, Font.BOLD);

    try {/*from www .  java2 s .co  m*/
        String date = object.getEmpdate();
        System.out.println("ssdff" + date);
        SimpleDateFormat s1 = new SimpleDateFormat("dd-MM-yy");
        Date d1 = s1.parse(date);
        System.out.println("Date is [[[[[[[[[[[[[[[" + d1);
        Calendar cal = Calendar.getInstance();
        cal.setTime(d1);
        int year = cal.get(Calendar.YEAR);
        int month = cal.get(Calendar.MONTH) + 1;
        System.out.println("Incentives year year isssssssss" + year);

        String[] monthNames = { "January", "February", "March", "April", "May", "June", "July", "August",
                "September", "October", "November", "December" };
        String newmonth = monthNames[month - 1];

        Chunk reportTitle = new Chunk("Pay Sheet  For the Month of " + newmonth + year, ffont);

        Phrase p = new Phrase(reportTitle);
        //  p.add(reportTitle);
        Paragraph para = new Paragraph();
        para.add(p);
        para.setAlignment(Element.ALIGN_CENTER);
        PdfWriter.getInstance(d, b);

        Font boldFont = new Font(Font.FontFamily.TIMES_ROMAN, 15, Font.BOLD);
        //     Phrase  zzz=new Phrase("S. No",boldFont);
        Phrase one = new Phrase("Dept Name", boldFont);
        Phrase two = new Phrase("Days", boldFont);
        Phrase five = new Phrase("Wage", boldFont);
        Phrase four = new Phrase("Earn", boldFont);
        Phrase three = new Phrase("Inc", boldFont);
        Phrase six = new Phrase("Gross Salary", boldFont);
        Phrase seven = new Phrase("PF", boldFont);
        Phrase seven2 = new Phrase("Salary Advance", boldFont);
        Phrase eight = new Phrase("Cash Loan", boldFont);
        Phrase nine = new Phrase("Gas Loan", boldFont);
        Phrase ten = new Phrase("Tra Loan", boldFont);
        Phrase ten4 = new Phrase("Power", boldFont);
        Phrase ten5 = new Phrase("Meals", boldFont);
        Phrase ten6 = new Phrase("Tiffin", boldFont);
        Phrase ten7 = new Phrase("Tea", boldFont);
        Phrase ten8 = new Phrase("Store", boldFont);
        Phrase ten9 = new Phrase("Medicines", boldFont);
        Phrase ten11 = new Phrase("Cable", boldFont);
        Phrase one1 = new Phrase("Gas", boldFont);
        Phrase two1 = new Phrase("Adv2", boldFont);
        Phrase five1 = new Phrase("Eggs", boldFont);
        Phrase four1 = new Phrase("Uniform", boldFont);
        Phrase three1 = new Phrase("Total Deductions", boldFont);
        Phrase six1 = new Phrase("Net Salary", boldFont);

        //   PdfPCell pdfWordCel1zz= new PdfPCell();                
        PdfPCell pdfWordCell1 = new PdfPCell();
        PdfPCell pdfWordCell2 = new PdfPCell();
        PdfPCell pdfWordCell3 = new PdfPCell();
        PdfPCell pdfWordCell4 = new PdfPCell();
        PdfPCell pdfWordCell5 = new PdfPCell();
        PdfPCell pdfWordCell6 = new PdfPCell();
        PdfPCell pdfWordCell7 = new PdfPCell();
        PdfPCell pdfWordCell8 = new PdfPCell();
        PdfPCell pdfWordCell9 = new PdfPCell();
        PdfPCell pdfWordCell10 = new PdfPCell();
        PdfPCell pdfWordCell11 = new PdfPCell();
        PdfPCell pdfWordCell12 = new PdfPCell();
        PdfPCell pdfWordCell13 = new PdfPCell();
        PdfPCell pdfWordCell14 = new PdfPCell();
        PdfPCell pdfWordCell15 = new PdfPCell();
        PdfPCell pdfWordCell16 = new PdfPCell();
        PdfPCell pdfWordCell17 = new PdfPCell();
        PdfPCell pdfWordCell18 = new PdfPCell();
        PdfPCell pdfWordCell19 = new PdfPCell();
        PdfPCell pdfWordCell20 = new PdfPCell();
        PdfPCell pdfWordCell21 = new PdfPCell();
        PdfPCell pdfWordCell22 = new PdfPCell();
        PdfPCell pdfWordCell23 = new PdfPCell();
        PdfPCell pdfWordCell24 = new PdfPCell();

        //    pdfWordCel1zz.addElement(zzz);
        pdfWordCell1.addElement(one);
        pdfWordCell2.addElement(two);
        pdfWordCell3.addElement(five);
        pdfWordCell4.addElement(four);
        pdfWordCell5.addElement(three);
        pdfWordCell6.addElement(six);
        pdfWordCell7.addElement(seven);
        pdfWordCell8.addElement(seven2);
        pdfWordCell9.addElement(eight);
        pdfWordCell10.addElement(nine);
        pdfWordCell11.addElement(ten);
        pdfWordCell12.addElement(ten4);
        pdfWordCell13.addElement(ten5);
        pdfWordCell14.addElement(ten6);
        pdfWordCell15.addElement(ten7);
        pdfWordCell16.addElement(ten8);
        pdfWordCell17.addElement(ten9);
        pdfWordCell18.addElement(ten11);

        pdfWordCell19.addElement(one1);
        pdfWordCell20.addElement(two1);
        pdfWordCell21.addElement(five1);
        pdfWordCell22.addElement(four1);
        pdfWordCell23.addElement(three1);
        pdfWordCell24.addElement(six1);

        d.open();
        PdfPTable table = new PdfPTable(24);

        table.setTotalWidth(1250);
        //table.setWidths(new int[] {40,40});
        table.setLockedWidth(true);

        //            table.addCell( pdfWordCel1zz );
        table.addCell(pdfWordCell1);
        table.addCell(pdfWordCell2);

        table.addCell(pdfWordCell3);
        table.addCell(pdfWordCell4);
        table.addCell(pdfWordCell5);
        table.addCell(pdfWordCell6);
        table.addCell(pdfWordCell7);
        table.addCell(pdfWordCell8);
        table.addCell(pdfWordCell9);
        table.addCell(pdfWordCell10);
        table.addCell(pdfWordCell11);
        table.addCell(pdfWordCell12);
        table.addCell(pdfWordCell13);
        table.addCell(pdfWordCell14);
        table.addCell(pdfWordCell15);
        table.addCell(pdfWordCell16);
        table.addCell(pdfWordCell17);
        table.addCell(pdfWordCell18);
        table.addCell(pdfWordCell19);
        table.addCell(pdfWordCell20);
        table.addCell(pdfWordCell21);
        table.addCell(pdfWordCell22);
        table.addCell(pdfWordCell23);
        table.addCell(pdfWordCell24);

        Connection connection = null;
        Class.forName("com.mysql.jdbc.Driver");
        connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/hrmsdp_10", "root",
                "nivriti@123");
        Statement st = connection.createStatement();
        CallableStatement st1 = null;
        String sql = "{Call deptwise1(?,?)}";
        st1 = connection.prepareCall(sql);
        st1.setString(1, newmonth);
        st1.setInt(2, year);
        int days2 = 0;
        int wage2 = 0;
        int earn2 = 0;
        int inc2 = 0;
        int gross2 = 0;
        int pf2 = 0;
        int sal_adv2 = 0;
        int cash2 = 0;
        int gasl2 = 0;
        int tra2 = 0;
        int power2 = 0;
        int meals2 = 0;
        int tiffin2 = 0;
        int tea2 = 0;
        int store2 = 0;
        int medi2 = 0;
        int cable2 = 0;
        int gas22 = 0;
        int adv22 = 0;
        int eggs2 = 0;
        int unif2 = 0;
        int tot_ded2 = 0;
        int net_sal2 = 0;
        ResultSet rs = st1.executeQuery();
        while (rs.next()) {
            table.addCell(rs.getString("dept_name"));
            table.addCell(rs.getString("sum(distinct days)"));
            table.addCell(rs.getString("wages"));
            table.addCell(rs.getString("earnings"));
            table.addCell(rs.getString("increments"));
            table.addCell(rs.getString("gross_salary"));
            table.addCell(rs.getString("pf"));
            table.addCell(rs.getString("salary_advance"));
            table.addCell(rs.getString("cash_loan"));
            table.addCell(rs.getString("gas_loan"));
            table.addCell(rs.getString("tra_loan"));
            table.addCell(rs.getString("power"));
            table.addCell(rs.getString("meals"));
            table.addCell(rs.getString("tiffin"));
            table.addCell(rs.getString("tea"));
            table.addCell(rs.getString("store"));
            table.addCell(rs.getString("medicines"));
            table.addCell(rs.getString("cable"));
            table.addCell(rs.getString("gas"));
            table.addCell(rs.getString("adv2"));
            table.addCell(rs.getString("eggs"));
            table.addCell(rs.getString("uniform"));
            table.addCell(rs.getString("total_deductions"));
            table.addCell(rs.getString("net_salary"));

            String days = rs.getString("sum(distinct days)");

            String wage = rs.getString("wages");
            int wage1 = Integer.parseInt(wage);
            String earn = (rs.getString("earnings"));
            int earn1 = Integer.parseInt(earn);
            String inc = rs.getString("increments");
            int inc1 = Integer.parseInt(inc);
            String gross_sal = rs.getString("gross_salary");
            int gross_sal1 = Integer.parseInt(gross_sal);

            String pf = rs.getString("pf");
            int pf1 = Integer.parseInt(pf);
            String sal_adv = rs.getString("salary_advance");
            int sal_adv1 = Integer.parseInt(sal_adv);
            int cash1 = 0, gas1 = 0, tra1 = 0;
            try {
                String cash = rs.getString("cash_loan");
                cash1 = Integer.parseInt(cash);
                System.out.println("Incentives month isssssssss" + newmonth);

                String gas12 = rs.getString("gas_loan");
                gas1 = Integer.parseInt(gas12);

                String tra = rs.getString("tra_loan");
                tra1 = Integer.parseInt(tra);
            } catch (NumberFormatException nm) {
                System.out.println("------------------------>" + nm);
            }
            String power = rs.getString("power");
            int power1 = Integer.parseInt(power);
            String meals = rs.getString("meals");
            int meals1 = Integer.parseInt(meals);
            String tiffin = rs.getString("tiffin");
            int tiffin1 = Integer.parseInt(tiffin);
            String tea = rs.getString("tea");
            int tea1 = Integer.parseInt(tea);
            String store = rs.getString("store");
            int store1 = Integer.parseInt(store);
            String medicines = rs.getString("medicines");
            int medicines1 = Integer.parseInt(medicines);
            String cable = rs.getString("cable");

            int cable1 = Integer.parseInt(cable);
            String gas2 = rs.getString("gas");
            int gas3 = Integer.parseInt(gas2);
            String adv2 = rs.getString("adv2");
            int adv21 = Integer.parseInt(adv2);
            String egg = rs.getString("eggs");
            int egg1 = Integer.parseInt(egg);
            String uniform = rs.getString("uniform");
            int uniform1 = Integer.parseInt(uniform);
            String tot = rs.getString("total_deductions");
            int tot1 = Integer.parseInt(tot);
            String net = rs.getString("net_salary");
            int net1 = Integer.parseInt(net);

            int days1 = Integer.parseInt(days);

            System.out.println("ddddddddddddddddddd" + days1);
            days2 = days1 + days2;
            System.out.println("ddddddddddddddddddd" + days2);
            wage2 = wage1 + wage2;
            earn2 = earn1 + earn2;
            inc2 = inc1 + inc2;
            gross2 = gross_sal1 + gross2;
            pf2 = pf1 + pf2;
            sal_adv2 = sal_adv1 + sal_adv2;
            cash2 = cash1 + cash2;
            gasl2 = gas1 + gasl2;
            tra2 = tra1 + tra2;
            power2 = power1 + power2;
            meals2 = meals1 + meals2;
            tiffin2 = tiffin1 + tiffin2;
            tea2 = tea1 + tea2;
            store2 = store1 + store2;
            medi2 = medicines1 + medi2;
            cable2 = cable1 + cable2;
            gas22 = gas3 + gas22;
            adv22 = adv21 + adv22;
            eggs2 = egg1 + eggs2;
            unif2 = uniform1 + unif2;
            tot_ded2 = tot1 + tot_ded2;
            net_sal2 = net1 + net_sal2;

        }

        String days3 = Integer.toString(days2);
        String wage3 = Integer.toString(wage2);
        String earn3 = Integer.toString(earn2);
        String inc3 = Integer.toString(inc2);
        String gross3 = Integer.toString(gross2);
        String pf3 = Integer.toString(pf2);
        String sal_adv3 = Integer.toString(sal_adv2);
        String cash3 = Integer.toString(cash2);
        String gas13 = Integer.toString(gasl2);
        String tra3 = Integer.toString(tra2);
        String power3 = Integer.toString(power2);
        String meals3 = Integer.toString(meals2);
        String tiffin3 = Integer.toString(tiffin2);
        String tea3 = Integer.toString(tea2);
        String store3 = Integer.toString(store2);
        String medi3 = Integer.toString(medi2);
        String cable3 = Integer.toString(cable2);
        String gas33 = Integer.toString(gas22);
        String adv33 = Integer.toString(adv22);
        String eggs3 = Integer.toString(eggs2);
        String unif3 = Integer.toString(unif2);
        String tot_ded3 = Integer.toString(tot_ded2);
        String net_sal3 = Integer.toString(net_sal2);
        PdfPTable table1 = new PdfPTable(24);
        Phrase total = new Phrase("TOTAL", boldFont);
        table1.setTotalWidth(1250);
        table1.setLockedWidth(true);

        table1.addCell(total);
        table1.addCell(days3);
        table1.addCell(wage3);
        table1.addCell(earn3);
        table1.addCell(inc3);
        table1.addCell(gross3);
        table1.addCell(pf3);
        table1.addCell(sal_adv3);
        table1.addCell(cash3);
        table1.addCell(gas13);
        table1.addCell(tra3);
        table1.addCell(power3);
        table1.addCell(meals3);
        table1.addCell(tiffin3);
        table1.addCell(tea3);
        table1.addCell(store3);
        table1.addCell(medi3);
        table1.addCell(cable3);
        table1.addCell(gas33);
        table1.addCell(adv33);
        table1.addCell(eggs3);
        table1.addCell(unif3);
        table1.addCell(tot_ded3);
        table1.addCell(net_sal3);

        d.add(para);
        d.add(Chunk.NEWLINE);
        d.add(Chunk.NEWLINE);
        d.add(table);
        d.add(table1);
        d.close();

    }

    catch (Exception e) {
        System.out.println(e);
    }
    byte[] bytes = null;
    bytes = b.toByteArray();
    res.setContentLength(bytes.length);
    if (bytes != null) {
        inputStream = new ByteArrayInputStream(bytes);
    }
    return "success";
}

From source file:com.hrms.struts.Reportsaction.java

public String generateemployees() {
    //    System.out.println(pdf.getEmp_id());
    //    System.out.println(pdf.getName());

    HttpServletResponse res = ServletActionContext.getResponse();
    Rectangle envelope = new Rectangle(1300, 1300);
    Document d = new Document(envelope, 10f, 10f, 100f, 0f);
    ByteArrayOutputStream b = new ByteArrayOutputStream();
    d.addTitle("Salary Abstract For the Month of JUNE 2016");
    Font ffont = new Font(Font.FontFamily.TIMES_ROMAN, 25, Font.BOLD);

    try {/*  ww w.ja  v  a 2 s  .c  om*/
        String date = object.getEmpdate();
        System.out.println("ssdff" + date);
        SimpleDateFormat s1 = new SimpleDateFormat("dd-MM-yy");
        Date d1 = s1.parse(date);
        System.out.println("Date is [[[[[[[[[[[[[[[" + d1);
        Calendar cal = Calendar.getInstance();
        cal.setTime(d1);
        int year = cal.get(Calendar.YEAR);
        int month = cal.get(Calendar.MONTH) + 1;
        System.out.println("Incentives year year isssssssss" + year);

        String[] monthNames = { "January", "February", "March", "April", "May", "June", "July", "August",
                "September", "October", "November", "December" };
        String newmonth = monthNames[month - 1];
        System.out.println("Incentives month isssssssss" + newmonth);

        Chunk reportTitle = new Chunk("Pay Sheet  For the Month of " + newmonth + year, ffont);

        Phrase p = new Phrase(reportTitle);
        //  p.add(reportTitle);
        Paragraph para = new Paragraph();
        para.add(p);
        para.setAlignment(Element.ALIGN_CENTER);
        PdfWriter.getInstance(d, b);

        PdfWriter.getInstance(d, b);

        Font boldFont = new Font(Font.FontFamily.TIMES_ROMAN, 15, Font.BOLD);
        Phrase two = new Phrase("Code No", boldFont);
        Phrase three = new Phrase("Name", boldFont);
        Phrase four = new Phrase("Status", boldFont);
        Phrase five = new Phrase("Dept", boldFont);
        Phrase six = new Phrase("Days", boldFont);
        Phrase seven = new Phrase("Wage", boldFont);
        Phrase eight = new Phrase("Inc", boldFont);
        Phrase nine = new Phrase("Earn", boldFont);
        Phrase ten = new Phrase("Inc Amt", boldFont);
        Phrase eleven = new Phrase("Gross Earn", boldFont);
        Phrase twelve = new Phrase("PF", boldFont);
        Phrase thirteen = new Phrase("PPP", boldFont);
        Phrase fourteen = new Phrase("PF No", boldFont);
        Phrase fifteen = new Phrase("Sal Advance", boldFont);

        PdfPCell pdfWordCell2 = new PdfPCell();
        PdfPCell pdfWordCell3 = new PdfPCell();
        PdfPCell pdfWordCell4 = new PdfPCell();
        PdfPCell pdfWordCell5 = new PdfPCell();
        PdfPCell pdfWordCell6 = new PdfPCell();
        PdfPCell pdfWordCell7 = new PdfPCell();
        PdfPCell pdfWordCell8 = new PdfPCell();
        PdfPCell pdfWordCell9 = new PdfPCell();
        PdfPCell pdfWordCell10 = new PdfPCell();
        PdfPCell pdfWordCell11 = new PdfPCell();
        PdfPCell pdfWordCell12 = new PdfPCell();
        PdfPCell pdfWordCell13 = new PdfPCell();
        PdfPCell pdfWordCell14 = new PdfPCell();
        PdfPCell pdfWordCell15 = new PdfPCell();
        PdfPCell pdfWordCell50 = new PdfPCell(new Phrase("Gas Loan", boldFont));
        PdfPCell pdfWordCell16 = new PdfPCell(new Phrase("Cash Loan", boldFont));
        PdfPCell pdfWordCell17 = new PdfPCell(new Phrase("Tra Loan", boldFont));
        PdfPCell pdfWordCell18 = new PdfPCell(new Phrase("Power", boldFont));
        PdfPCell pdfWordCell19 = new PdfPCell(new Phrase("Meals", boldFont));
        PdfPCell pdfWordCell20 = new PdfPCell(new Phrase("Tiffin", boldFont));
        PdfPCell pdfWordCell21 = new PdfPCell(new Phrase("Tea", boldFont));
        PdfPCell pdfWordCell22 = new PdfPCell(new Phrase("Store", boldFont));
        PdfPCell pdfWordCell23 = new PdfPCell(new Phrase("Medicine", boldFont));
        PdfPCell pdfWordCell24 = new PdfPCell(new Phrase("Cable", boldFont));
        PdfPCell pdfWordCell25 = new PdfPCell(new Phrase("Gas", boldFont));
        PdfPCell pdfWordCell26 = new PdfPCell(new Phrase("Adv2", boldFont));
        PdfPCell pdfWordCell27 = new PdfPCell(new Phrase("Eggs", boldFont));
        PdfPCell pdfWordCell28 = new PdfPCell(new Phrase("Uniform", boldFont));
        PdfPCell pdfWordCell29 = new PdfPCell(new Phrase("Total Deduction", boldFont));
        PdfPCell pdfWordCell30 = new PdfPCell(new Phrase("Net Salary", boldFont));
        //   PdfPCell pdfWordCell31= new PdfPCell(new Phrase("Signature", boldFont));

        pdfWordCell2.addElement(two);
        pdfWordCell3.addElement(three);
        pdfWordCell4.addElement(four);
        pdfWordCell5.addElement(five);
        pdfWordCell6.addElement(six);
        pdfWordCell7.addElement(seven);
        pdfWordCell8.addElement(eight);
        pdfWordCell9.addElement(nine);
        pdfWordCell10.addElement(ten);
        pdfWordCell11.addElement(eleven);
        pdfWordCell12.addElement(twelve);
        pdfWordCell13.addElement(thirteen);
        pdfWordCell14.addElement(fourteen);
        pdfWordCell15.addElement(fifteen);

        d.open();
        PdfPTable table = new PdfPTable(30);
        //     PdfPTable table1 = new PdfPTable(2);
        //    table.setWidths(new int[]{4,5,6,5,7,5,5,5,4,7,6,4,4,6,8,7,6,6,6,6,4,5,9,5,4,2,2,2,2,2,2});
        table.setTotalWidth(1250);
        table.setWidths(new int[] { 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 45, 40, 40, 40, 40,
                40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 });
        table.setLockedWidth(true);
        //   table.addCell(  pdfWordCell );  

        //      table.setTotalWidth(1250);
        //      table.setLockedWidth(true);

        table.addCell(pdfWordCell2);
        table.addCell(pdfWordCell3);
        table.addCell(pdfWordCell4);
        table.addCell(pdfWordCell5);
        table.addCell(pdfWordCell6);
        table.addCell(pdfWordCell7);
        table.addCell(pdfWordCell8);
        table.addCell(pdfWordCell9);
        table.addCell(pdfWordCell10);
        table.addCell(pdfWordCell11);
        table.addCell(pdfWordCell12);
        table.addCell(pdfWordCell13);
        table.addCell(pdfWordCell14);
        table.addCell(pdfWordCell15);
        table.addCell(pdfWordCell50);
        table.addCell(pdfWordCell16);
        table.addCell(pdfWordCell17);
        table.addCell(pdfWordCell18);
        table.addCell(pdfWordCell19);
        table.addCell(pdfWordCell20);
        table.addCell(pdfWordCell21);
        table.addCell(pdfWordCell22);
        table.addCell(pdfWordCell23);
        table.addCell(pdfWordCell24);
        table.addCell(pdfWordCell25);
        table.addCell(pdfWordCell26);
        table.addCell(pdfWordCell27);
        table.addCell(pdfWordCell28);
        table.addCell(pdfWordCell29);
        table.addCell(pdfWordCell30);
        // table.addCell(pdfWordCell31);

        Connection connection = null;
        Class.forName("com.mysql.jdbc.Driver");
        connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/hrmsdp_10", "root",
                "nivriti@123");
        //   Statement st=connection. createStatement(); 

        Statement st1 = connection.createStatement();
        CallableStatement st = null;
        String sql = "{Call emp_payslip123(?,?)}";
        st = connection.prepareCall(sql);

        st.setString(1, newmonth);
        st.setInt(2, year);
        //  String sql="Call calc(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
        //  PreparedStatement st=connection.prepareStatement(sql);
        //    ResultSet rs= st.executeQuery("Call calc(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
        ResultSet rs = st.executeQuery();
        while (rs.next()) {

            table.addCell(rs.getString("emp_id"));
            table.addCell(rs.getString("emp_name"));
            table.addCell(rs.getString("status"));
            table.addCell(rs.getString("dept_name"));
            table.addCell(rs.getString("days"));
            table.addCell(rs.getString("wage"));
            table.addCell(rs.getString("inc"));
            table.addCell(rs.getString("earn"));
            table.addCell(rs.getString("inc_amount"));
            table.addCell(rs.getString("gross_salary"));
            table.addCell(rs.getString("pf"));
            table.addCell(rs.getString("ppp"));
            table.addCell(rs.getString("pf_no"));
            table.addCell(rs.getString("salary_advance"));
            table.addCell(rs.getString("sum(gas_loan)"));
            table.addCell(rs.getString("sum(cash_loan)"));
            table.addCell(rs.getString("sum(tra_loan)"));
            table.addCell(rs.getString("power"));
            table.addCell(rs.getString("meals"));
            table.addCell(rs.getString("tiffin"));
            table.addCell(rs.getString("tea"));
            table.addCell(rs.getString("store"));
            table.addCell(rs.getString("medicines"));
            table.addCell(rs.getString("cable"));
            table.addCell(rs.getString("gas"));
            table.addCell(rs.getString("adv2"));
            table.addCell(rs.getString("eggs"));
            table.addCell(rs.getString("uniform"));
            table.addCell(rs.getString("total_deductions"));
            table.addCell(rs.getString("net_salary"));
            //   table.addCell("");
            // table.addCell(image);
        }
        //ResultSet rs1=st1.executeQuery("SELECT   sum(days) as days , sum(wage) as wages, sum(earn) as earn ,sum(inc) as inc,sum(gros_earn) as gross_earn,sum(sal_advance) as sal_adv,sum(cash_loan) as cash_loan,sum(gas_loan) as gas_loan,sum(tra_loan) as tra_loan,sum(power) as power,sum(meals) as meals,sum(tiffin) as tiffin,sum(tea) as tea,sum(store) as store,sum(medicines) as medicines,sum(cable) as cable,sum(gas) as gas,sum(adv2) as adv2,sum(eggs) as eggs,sum(uniform) as uniform,sum(total_deduction) as totla_deduction  FROM caluclation ");
        //            ResultSet rs1=st1.executeQuery("select sum(days),sum(wage) from caluclation");
        //      String s1=rs1.getString(1);

        //   table.setTotalWidth(PageSize.LARGE_CROWN_OCTAVO.getWidth());   
        d.add(para);
        d.add(Chunk.NEWLINE);
        d.add(Chunk.NEWLINE);
        d.add(table);
        d.close();
    } catch (Exception e) {
        System.out.println(e);
    }
    byte[] bytes = null;
    bytes = b.toByteArray();
    res.setContentLength(bytes.length);
    if (bytes != null) {
        inputStream = new ByteArrayInputStream(bytes);
    }
    return "success";
}

From source file:com.icebreak.p2p.front.controller.trade.download.InvestReceiptPDFCreator.java

/**
 * ???//from w  w  w.j  av a2  s . co m
 * @param tradeId
 * @param detailId
 * @param servletPath
 * @return ?  byte[]
 * @throws Exception
 */
public byte[] creatFileData4Receipt(long tradeId, long detailId, String servletPath) throws Exception {

    FileInputStream fis = null;
    BufferedInputStream buff = null;

    String fileKey = tradeId + "_" + detailId;//System.currentTimeMillis() + "";
    String filePath = servletPath + "/resources/pdf/investReceipt_" + fileKey + ".pdf";
    this.receiptFilePath = filePath;

    File file = new File(filePath);

    if (!file.exists()) {

        String timeLimit = "";
        String interestRate = "";
        String guaranteeName = "";
        String investFlowCode = null;
        String investor = "";
        String investorReal = "";
        String investorCertNo = "";
        String loanner = "";
        String loannerReal = "";
        String loannerCertNo = "";
        String investAmount = "";
        String totalAmountStr = "";
        String effectiveDate = "";
        String expireDate = "";

        Trade trade = tradeService.getByTradeId(tradeId);
        effectiveDate = DateUtil.simpleFormat(trade.getEffectiveDateTime());
        expireDate = DateUtil.simpleFormat(trade.getExpireDateTime());
        LoanDemandDO loanDemand = loanDemandManager.queryLoanDemandByDemandId(trade.getDemandId());
        guaranteeName = loanDemand.getGuaranteeName();
        if ("W".equals(loanDemand.getTimeLimitUnit()) || "M".equals(loanDemand.getTimeLimitUnit())) {
            timeLimit = loanDemand.getTimeLimit() + "";
        } else if ("Y".equals(loanDemand.getTimeLimitUnit())) {
            timeLimit = loanDemand.getTimeLimit() + "";
        } else {
            timeLimit = loanDemand.getTimeLimit() + "";
        }
        interestRate = CommonUtil.mul(loanDemand.getInterestRate(), 100) + "%";
        List<UserInvestEntry> userInvests = tradeService.getEntriesByTradeIdAndDetailId(tradeId, detailId);
        long totalAmount = 0;
        if (userInvests != null && userInvests.size() > 0) {
            UserInvestEntry tradeItem = userInvests.get(0);
            investAmount = MoneyUtil.getFormatAmount(tradeItem.getAmount());
            long investorId = userInvests.get(0).getInvestorId();
            long loannerId = userInvests.get(0).getLoanerId();
            investorCertNo = getCertNoByUserId(investorId);
            loannerCertNo = getCertNoByUserId(loannerId);
            investor = userInvests.get(0).getInvestorUserName();
            investorReal = userInvests.get(0).getInvestorRealName();
            loannerReal = userInvests.get(0).getLoanerRealName();
            loanner = userInvests.get(0).getLoanerUserName();
            totalAmount = userInvests.get(0).getAmount();
        }

        //?
        /*interest = caculateInterest(new Money(totalAmount), loanDemand.getInterestRate(),
        loanDemand.getTimeLimit(), loanDemand.getTimeLimitUnit());*/

        long divisionAmount = 0;
        long profitAmount = 0;
        List<TradeDetail> details = tradeService.getInvestProfitTrade(detailId);
        if (details != null && details.size() > 0) {
            for (TradeDetail detail : details) {
                divisionAmount += detail.getAmount();
                if (detail.getProfitType() > 0) {
                    profitAmount += detail.getAmount();
                }
            }
        }
        totalAmount += divisionAmount;

        TradeFlowCode tradeFlow = tradeService.queryInvestFlowCodesByTradeDetailId(detailId);
        if (tradeFlow != null) {
            investFlowCode = tradeFlow.getTradeFlowCode();
        }

        String guaranteeLicenseNo = "";
        Map<String, Object> cond = new HashMap<String, Object>();
        cond.put("roleId", 8L);

        cond.put("tradeId", trade.getId());
        List<TradeQueryDetail> det = loanDemandManager.getTradeDetailByConditions(cond);
        if (det != null && det.size() > 0) {
            tradeFlow = tradeService.queryInvestFlowCodesByTradeDetailId(det.get(0).getId());
            if (tradeFlow != null) {
                guaranteeLicenseNo = tradeFlow.getTradeFlowCode();
            }
        }

        LoanDemandDO demand = loanDemandManager.queryLoanDemandByDemandId(trade.getDemandId());
        long divisionTemplateId = demand.getDivisionTemplateId();
        DivisionTemplateLoanDO divisionTemplateLoan = divisionTemplateLoanService
                .getByBaseId(divisionTemplateId);
        List<DivsionRuleRole> investRolelist = divisionService
                .getRuleRole(String.valueOf(divisionTemplateLoan.getInvestTemplateId()));
        List<DivsionRuleRole> repayRolelist = divisionService
                .getRuleRole(String.valueOf(divisionTemplateLoan.getRepayTemplateId()));
        //??
        double totalAnnualInterest = 0;
        investRolelist.addAll(repayRolelist);
        if (investRolelist != null && investRolelist.size() > 0) {
            for (DivsionRuleRole druleRole : investRolelist) {
                if (DivisionPhaseEnum.INVESET_PHASE.code().equals(druleRole.getPhase())) {
                    if ("11".equals(String.valueOf(druleRole.getRoleId()))) {
                        totalAnnualInterest += druleRole.getRule();
                    }

                }
            }
        }

        totalAmountStr = MoneyUtil.getFormatAmount(totalAmount);
        String divisionAmountStr = MoneyUtil.getFormatAmount(divisionAmount);

        FileOutputStream fos = null;
        Document doc = new Document(PageSize.A4, 20, 20, 140, 20);
        try {
            fos = new FileOutputStream(filePath);
            PdfWriter writer = PdfWriter.getInstance(doc, fos);
            doc.open();
            //   
            BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
            Font titleChinese = new Font(bfChinese, 20, Font.BOLD); // ?     
            Paragraph title = new Paragraph(AppConstantsUtil.getProductName() + "?", titleChinese);// 
            title.setAlignment(Element.ALIGN_CENTER); // 
            title.setLeading(1f);//?//?
            doc.add(title);

            Font fontZH = new Font(bfChinese, 12, Font.NORMAL);
            float[] widths = { 20f, 30f, 25f, 25f };
            PdfPTable table = new PdfPTable(widths);

            table.setSpacingBefore(20f);// ?
            table.setTotalWidth(500);// 
            table.setWidthPercentage(100);//%100
            // table.getDefaultCell().setBorder(0);//
            PdfPCell cell;
            //               cell = new PdfPCell(new Paragraph("?",fontZH));
            //               cell.setColspan(4);
            //               table.addCell(cell);

            cell = new PdfPCell(new Paragraph("??", fontZH));
            cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph(AppConstantsUtil.getPlatformName(), fontZH));
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph("?", fontZH));
            cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph(loanDemand.getRepayDivisionWayMsg(), fontZH));
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph("", fontZH));
            cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph(interestRate, fontZH));
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph("?", fontZH));
            cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph(timeLimit, fontZH));
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph("??", fontZH));
            cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph(guaranteeName, fontZH));
            cell.setColspan(3);
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph("??", fontZH));
            cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
            table.addCell(cell);

            cell = new PdfPCell(
                    new Paragraph(StringUtil.nullToEmpty(loanDemand.getGuaranteeLicenseNo()), fontZH));
            cell.setColspan(3);
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph("", fontZH));
            cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph((loanDemand.getLoanAmount() / 100) + "", fontZH));
            cell.setColspan(3);
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph("", fontZH));
            cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph(loanDemand.getLoanPurpose(), fontZH));
            cell.setColspan(3);
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph("??", fontZH));
            cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph(investFlowCode, fontZH));
            cell.setColspan(3);
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph("?", fontZH));
            cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
            cell.setColspan(2);
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph("??", fontZH));
            cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
            cell.setColspan(2);

            table.addCell(cell);
            Paragraph iparas = new Paragraph("??" + investor, fontZH);
            iparas.add(Chunk.NEWLINE);
            iparas.add("??" + investorReal);
            iparas.add(Chunk.NEWLINE);
            iparas.add("??" + StringUtil.subString(investorCertNo, 7, "****"));
            iparas.add(Chunk.NEWLINE);
            iparas.add("?" + effectiveDate);
            iparas.add(Chunk.NEWLINE);
            iparas.add("" + expireDate);
            iparas.add(Chunk.NEWLINE);
            iparas.add("()" + investAmount);
            iparas.add(Chunk.NEWLINE);
            iparas.add("()" + divisionAmountStr);
            iparas.add(Chunk.NEWLINE);
            iparas.add("()" + totalAmountStr);

            cell = new PdfPCell(iparas);
            cell.setColspan(2);
            cell.setRowspan(8);

            cell.setMinimumHeight(120);
            table.addCell(cell);
            Paragraph paras = new Paragraph("??" + loanner, fontZH);
            paras.add(Chunk.NEWLINE);
            paras.add("??" + loannerReal);
            paras.add(Chunk.NEWLINE);
            paras.add("??" + StringUtil.subString(loannerCertNo, 7, "****"));
            paras.add(Chunk.NEWLINE);
            paras.add("?" + effectiveDate);
            paras.add(Chunk.NEWLINE);
            paras.add("" + expireDate);
            paras.add(Chunk.NEWLINE);
            paras.add(Chunk.NEWLINE);
            paras.add(Chunk.NEWLINE);
            paras.add("()" + totalAmountStr);
            cell = new PdfPCell(paras);
            cell.setColspan(2);
            cell.setRowspan(8);
            table.addCell(cell);
            doc.add(table);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            Paragraph tips = new Paragraph("  ?? ?"
                    + AppConstantsUtil.getPlatformName() + "", fontZH);// 
            tips.setLeading(1f);//?//?
            doc.add(tips);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            doc.add(Chunk.NEWLINE);
            tips = new Paragraph("  ??" + AppConstantsUtil.getPlatformAddress(), fontZH);// 
            tips.setLeading(1f);//?//?
            doc.add(tips);
            //               XMLWorkerHelper.getInstance().parseXHtml(writer, doc,
            //                     new ByteArrayInputStream(str.getBytes()));
            doc.close();
            logger.info("?");

        } catch (Exception e) {
            logger.error("?", e);
            throw new Exception("?:" + e.getMessage());
        } finally {

            if (fos != null) {
                fos.close();
            }
        }
    }

    byte[] data = new byte[1024];

    file = new File(filePath);
    try {
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        byte[] temp = new byte[1024];
        int size = 0;

        fis = new FileInputStream(file);
        buff = new BufferedInputStream(fis);

        int i = 0;

        while ((size = buff.read(temp)) != -1) {
            out.write(temp, 0, size);
            i += 1;
        }

        data = out.toByteArray();

        buff.close();
        fis.close();
        //file.delete();

        if (i == 0 && size == -1) { //PDF
            file.delete();
        }
    } catch (FileNotFoundException e) {
        logger.error("?", e);
    } catch (IOException e) {
        logger.error("delete file", e);
    } finally {
        if (fis != null) {
            fis.close();
        }
    }

    return data;
}

From source file:com.ideationdesignservices.txtbook.pdf.TxtBookPdf.java

public Boolean createFrontCoverPage(Document document, String coverTitle, Bitmap photo)
        throws DocumentException, MalformedURLException, IOException {
    if (photo != null) {
        int imageMaxWidth;
        int imageMaxHeight;
        int imagePosX;
        int imagePosY;
        if (photo.getWidth() < photo.getHeight()) {
            imageMaxWidth = 900;/*from   w w w. j  a  va 2 s  . c  om*/
            imageMaxHeight = 1200;
            imagePosX = 198;
            imagePosY = 379;
        } else {
            imageMaxWidth = 1200;
            imageMaxHeight = 900;
            imagePosX = 162;
            imagePosY = 379;
        }
        OutputStream stream = new ByteArrayOutputStream();
        ImageUtilities.scaleCenterCrop(photo, imageMaxWidth, imageMaxHeight).compress(CompressFormat.JPEG, 50,
                stream);
        Image coverImage = Image.getInstance(stream.toByteArray());
        coverImage.setAbsolutePosition(0.0f, 0.0f);
        PdfTemplate t = this.writer.getDirectContent().createTemplate((float) imageMaxWidth,
                (float) imageMaxHeight);
        t.newPath();
        t.moveTo(0.0f, (float) imageMaxHeight);
        t.lineTo(0.0f, 71.0f);
        t.lineTo(17.0f, 71.0f);
        t.lineTo(17.0f, 0.0f);
        t.lineTo(72.0f, 71.0f);
        t.lineTo((float) imageMaxWidth, 71.0f);
        t.lineTo((float) imageMaxWidth, (float) imageMaxHeight);
        t.lineTo(0.0f, (float) imageMaxHeight);
        t.closePath();
        t.clip();
        t.newPath();
        t.addImage(coverImage);
        t.setColorStroke(new BaseColor(0, 0, 0));
        t.setLineWidth(BUBBLE_TEXT_INDENT_ALTERNATE);
        t.newPath();
        t.moveTo(0.0f, (float) imageMaxHeight);
        t.lineTo(0.0f, 71.0f);
        t.lineTo(17.0f, 71.0f);
        t.lineTo(17.0f, 0.0f);
        t.lineTo(72.0f, 71.0f);
        t.lineTo((float) imageMaxWidth, 71.0f);
        t.lineTo((float) imageMaxWidth, (float) imageMaxHeight);
        t.lineTo(0.0f, (float) imageMaxHeight);
        t.closePathStroke();
        Image clipped = Image.getInstance(t);
        clipped.scalePercent(24.0f);
        clipped.setAbsolutePosition((float) imagePosX, (float) imagePosY);
        clipped.setCompressionLevel(this.settings.compressionLevel);
        clipped.setAlignment(5);
        document.add(clipped);
    }
    if (coverTitle != null && coverTitle.length() > 0) {
        PdfContentByte canvas = this.writer.getDirectContent();
        Paragraph coverTitleEl = new Paragraph(coverTitle, this.serifFont24);
        coverTitleEl.setAlignment(1);
        PdfPTable table = new PdfPTable(1);
        table.setTotalWidth(311.0f);
        PdfPCell cell = new PdfPCell();
        cell.setBorder(0);
        cell.addElement(coverTitleEl);
        cell.setPadding(0.0f);
        cell.setIndent(0.0f);
        table.addCell(cell);
        table.completeRow();
        table.writeSelectedRows(0, -1, 147.0f, 390.0f, canvas);
    }
    return Boolean.valueOf(true);
}