<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="com.csc.library.utility.DHMConvert"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.Iterator"%>
<%@page import="java.util.Vector"%>
<%@page import="java.util.*"%>
<%@page import="com.csc.library.report.ReportUDF"%>
<%@page import="javax.servlet.jsp.jstl.sql.Result"%>
<%@page import="java.io.FileOutputStream"%>
<%@page import="com.csc.library.utilities.MyLog"%>
<%@page import="java.io.OutputStream"%>
<%@page import="java.io.ByteArrayOutputStream"%>
<%@page import="java.net.URLDecoder"%>
<%@page import="java.text.DecimalFormat"%>
<%@page import="java.net.URLEncoder"%>
<%@page import="java.util.HashMap"%>
<%@page import="java.text.SimpleDateFormat" %>
<%@page import="java.util.Locale" %>
<%@page import="java.util.Date" %>
<%@page import="java.util.GregorianCalendar" %>
<%@page import="com.csc.library.database.DataSet"%>
<%@page import="com.csc.library.session.InitialInquiry"%>
<%@page import="com.csc.library.session.InitialRecord"%>
<%@page import="com.csc.library.utilities.UProfile"%>
<%@page import="com.csc.library.utilities.CscCalendar"%>
<%@page import="com.csc.library.session.DbInquiry"%>
<%@page import="com.csc.library.session.DbRecord"%>
<%@page import="com.csc.library.utilities.CheckNull"%>
<%@page import="com.csc.library.entry.HelpEntry"%>
<%@page import="com.itextpdf.text.*"%>
<%@page import="com.itextpdf.text.pdf.*"%>
<%@page import="java.io.ByteArrayOutputStream" %>
<%@page import="com.csc.library.session.InitialEnvironment" %>
<jsp:useBean id="PSR002_PDF" class="com.csc.library.system.Task" scope="page" />
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8"/>
        <title>Report</title>
    </head>
    <body>
        Not found data
        <%
        PSR002_PDF.setChannel(request, response);
        HelpEntry screen = (HelpEntry) PSR002_PDF.process("HelpEntry", "PSR002_NSTDA");
        CheckNull chk = new CheckNull();

        screen.setMaxLine(-1);
        screen.inq.setFilter("employeeid ='"+chk.chkNullString(request.getParameter("__employeeid"))+"' and companyid='"+chk.chkNullString(request.getParameter("__companyid"))+"'");
        screen.process();

        String chk_sh  = chk.chkNullString(request.getParameter("__chk_sh"));
        String chk_wkin = chk.chkNullString(request.getParameter("__chk_wkin"));
        String chk_wkout  = chk.chkNullString(request.getParameter("__chk_wkout"));
        String chk_wa = chk.chkNullString(request.getParameter("__chk_wa"));
        String chk_app  = chk.chkNullString(request.getParameter("__chk_app"));
        String chk_edu = chk.chkNullString(request.getParameter("__chk_edu"));
        String chk_exp  = chk.chkNullString(request.getParameter("__chk_exp"));
        String chk_sk = chk.chkNullString(request.getParameter("__chk_sk"));
        String chk_expout  = chk.chkNullString(request.getParameter("__chk_expout"));
        String chk_expin = chk.chkNullString(request.getParameter("__chk_expin"));
        String chk_family =  chk.chkNullString(request.getParameter("__chk_family"));
        String chk_pvf =  chk.chkNullString(request.getParameter("__chk_pvf"));

        ByteArrayOutputStream baos = new ByteArrayOutputStream();//72
        Document document = new Document(PageSize.A4, 20, 20, 28, 36);
        float[] sizeColumn = new float[] {};

        PdfWriter.getInstance(document, baos);
        document.open();
        document.addTitle("Document Title");

        BaseFont bf = BaseFont.createFont(application.getRealPath("FONTS/Cordia.ttf"), BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
        BaseFont bfHead = BaseFont.createFont(application.getRealPath("FONTS/Cordia.ttf"), BaseFont.IDENTITY_H, BaseFont.EMBEDDED, true);
        Font font = new Font(bf, 10);
        Font fontTopic = new Font(bfHead, 12, Font.BOLD);
        Font fontHead = new Font(bfHead, 10, Font.BOLD);
        //fontHead.setStyle(Font.BOLD);
        Font fontContent = new Font(bfHead, 10);
        Font fontTitle = new Font(bfHead, 16, Font.BOLD);
        fontTitle.setStyle(Font.BOLD);

        // set vlign middle
        Phrase content = new Phrase("Blah blah blah", font);
        Float fontSize = content.getFont().getSize();
        Float capHeight = content.getFont().getBaseFont().getFontDescriptor(BaseFont.CAPHEIGHT, fontSize);

        boolean hasData = false;
        if(screen.getInquiry().recCount() > 0) {
            hasData = true;
            screen.nextRec();
            screen.referLangOn();
            DbInquiry dbinq = null;
            int i = 0;
            try{
                CscCalendar calendar = new CscCalendar();
                SimpleDateFormat sdf = new SimpleDateFormat("hh:mm a", Locale.ENGLISH);
                GregorianCalendar gc= new GregorianCalendar();
                boolean langthai = screen.getUProfile().get("lang").equalsIgnoreCase("THA");
                String reportname = "", printdate = "", printby = "", refer = "PRI2063";
                String reportname_label = "", printdate_label = "", printby_label = "", refer_label = "";
                if(langthai){
                    reportname_label = "รายงาน :";
                    reportname = "รายงานข้อมูลพนักงาน";
                    printdate_label = "วันที่พิมพ์ :";
                    printdate = "วัน"+calendar.getLongThiDOW()+"ที่ "+calendar.getDate()+ " " + calendar.getThaiLongMonth() + " พ.ศ. "+ calendar.getThaiYYYY() + " " + calendar.getHHMM() + " น.";
                    printby_label = "พิมพ์โดย :";
                    printby = screen.getUProfile().get("tfullname");
                    refer_label = "อ้างอิง #";
                } else {
                    reportname_label = "Report Name :";
                    reportname = "Personal Report";
                    printdate_label = "Print Date :";
                    printdate = calendar.getEngFull()+ " " + sdf.format((Date) gc.getTime());
                    printby_label = "Print By :";
                    printby = screen.getUProfile().get("efullname");
                    refer_label = "Ref #";
                }


                // --------------- Report Header -----------------
                sizeColumn = new float[] {8.5f,11.5f,20.0f,13.0f,7.0f,20.0f};
                PdfPTable detail = new PdfPTable(6);
                detail.setWidthPercentage(100);
                detail.setWidths(sizeColumn);
                PdfPCell cellDetail;
                Image img = null;

                setPadding(0.5f);
                setPaddingTop(capHeight - fontSize);
                setPaddingBottom(4f);
                //setPaddingTop(1f);
                detail.addCell( getCellData(screen.getUProfile().get("companyname"), fontTitle, true, "LEFT", "MIDDLE", 6, 0));
                // --------------- new line -----------------
                setPaddingBottom(0f);
                detail.addCell( getCellData(reportname_label, fontHead, true, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(reportname, font, true, "LEFT", "MIDDLE", 4, 0) );
                img = Image.getInstance(screen.getDataLabel("MEMPLOYEE","path_and_picture"));
                cellDetail = new PdfPCell(img, true);
                cellDetail.setHorizontalAlignment(Element.ALIGN_CENTER);
                cellDetail.setVerticalAlignment (Element.ALIGN_MIDDLE);
                cellDetail.setFixedHeight(10);
                cellDetail.setRowspan(5);
                cellDetail.setBorder(Rectangle.NO_BORDER);
                detail.addCell(cellDetail);
                // --------------- new line -----------------
                detail.addCell( getCellData(printdate_label, fontHead, true, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(printdate, font, true, "LEFT", "MIDDLE", 4, 0) );
                // --------------- new line -----------------
                setPaddingBottom(5f);
                detail.addCell( getCellData(printby_label, fontHead, true, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(printby, font, true, "LEFT", "MIDDLE", 2, 0) );
                detail.addCell( getCellData(refer_label, fontHead, true, "RIGHT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(refer, font, true, "RIGHT", "MIDDLE", 1, 0) );
                // --------------- new line -----------------
                setPaddingTop(0.5f);
                setPaddingBottom(4f);
                detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","EMPLOYEEID"), fontHead, false, "CENTER", "MIDDLE", 2, 0) );
                detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","FULLNAME"), fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","NICKNAME"), fontHead, false, "CENTER", "MIDDLE", 2, 0) );
                // --------------- new line -----------------
                detail.addCell( getCellData(screen.getDataLabel("MEMPLOYEE","EMPLOYEEID"), font, false, "CENTER", "MIDDLE", 2, 0) );
                detail.addCell( getCellData(screen.getDataLabel("MEMPLOYEE","FULLNAME"), font, false, "CENTER", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getDataLabel("MEMPLOYEE","NICKNAME"), font, false, "CENTER", "MIDDLE", 2, 0) );
                // --------------- new line -----------------
                document.add(detail);


                // --------------- Personal Detail -----------------
                sizeColumn = new float[] {8.5f,11.5f,8.5f,11.5f,8.5f,11.5f};
                detail = new PdfPTable(6);
                detail.setWidthPercentage(100);
                detail.setWidths(sizeColumn);

                setPaddingTop(5f);
                detail.addCell( getCellData(langthai ? "ประวัติส่วนตัว" : "Personal Detail", fontTopic, true, "LEFT", "MIDDLE", 6, 0) );
                // --------------- new line -----------------
                setPaddingTop(0.5f);
                setPaddingLeft(5f);
                setPaddingRight(5f);
                detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","SEX"), fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getSystemCode("MEMPLOYEE","SEX"), font, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","BIRTHDAY"), fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                String str_birthday = langthai ? new CscCalendar(screen.getDataLabel("MEMPLOYEE","BIRTHDAY")).getThaiDDMMYYYY() : new CscCalendar(screen.getDataLabel("MEMPLOYEE","BIRTHDAY")).getDDMMYYYY();
                detail.addCell( getCellData(str_birthday, font, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","BLOOD"), fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getSystemCode("MEMPLOYEE","BLOOD"), font, false, "LEFT", "MIDDLE", 1, 0) );
                // --------------- new line -----------------
                detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","ASTROLOGY"), fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getSystemCode("MEMPLOYEE","ASTROLOGY"), font, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","EMPAGES"), fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getDataLabel("MEMPLOYEE","EMPAGES"), font, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","EMP_NATIONAL"), fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getDataLabel("MNATIONAL","EDESC"), font, false, "LEFT", "MIDDLE", 1, 0) );
                // --------------- new line -----------------
                detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","STATMARRY"), fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getSystemCode("MEMPLOYEE","STATMARRY"), font, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","EMP_POSITION"), fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getDataLabel("MPOSITION","EDESC"), font, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","EMP_NATIONALITY"), fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getDataLabel("MNATIONALITY","EDESC"), font, false, "LEFT", "MIDDLE", 1, 0) );
                // --------------- new line -----------------
                detail.addCell( getCellData(langthai ? "ที่อยู่" : "Address", fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getDataLabel("CURRENT_ADDR"), font, false, "LEFT", "MIDDLE", 5, 0) );
                // --------------- new line -----------------
                detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","BU1"), fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getDataLabel("MBU1","EDESC"), font, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","BU2"), fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getDataLabel("MBU2","EDESC"), font, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","BU3"), fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getDataLabel("MBU3","EDESC"), font, false, "LEFT", "MIDDLE", 1, 0) );
                // --------------- new line -----------------
                detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","BU4"), fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getDataLabel("MBU4","EDESC"), font, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","BU5"), fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getDataLabel("MBU5","EDESC"), font, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","EMP_TYPE"), fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getDataLabel("MEMPLOYMENT_TYPE","EDESC"), font, false, "LEFT", "MIDDLE", 1, 0) );
                // --------------- new line -----------------
                detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","STATUS"), fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getDataLabel("MEMPL_STATUS","EDESC"), font, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","STARTDATE"), fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                String str_startdate = langthai ? new CscCalendar(screen.getDataLabel("MEMPLOYEE","STARTDATE")).getThaiDDMMYYYY() : new CscCalendar(screen.getDataLabel("MEMPLOYEE","STARTDATE")).getDDMMYYYY();
                detail.addCell( getCellData(str_startdate, font, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","APPROVE_DATE"), fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                String str_approvedate = langthai ? new CscCalendar(screen.getDataLabel("MEMPLOYEE","APPROVE_DATE")).getThaiDDMMYYYY() : new CscCalendar(screen.getDataLabel("MEMPLOYEE","APPROVE_DATE")).getDDMMYYYY();
                detail.addCell( getCellData(str_approvedate, font, false, "LEFT", "MIDDLE", 1, 0) );
                // --------------- new line -----------------
                detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","RESIGNDATE"), fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                String str_resigndate = langthai ? new CscCalendar(screen.getDataLabel("MEMPLOYEE","RESIGNDATE")).getThaiDDMMYYYY() : new CscCalendar(screen.getDataLabel("MEMPLOYEE","RESIGNDATE")).getDDMMYYYY();
                detail.addCell( getCellData(screen.getDataLabel("MEMPL_STATUS","STATUSTYPE").equalsIgnoreCase("C") ? str_resigndate : "-", font, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","SALARY"), fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                String str_salary = new DecimalFormat("#,##0").format(screen.inq.getCurrentDbRecord().getDouble("SALARY"));
                detail.addCell( getCellData(str_salary, font, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","EMAIL"), fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getDataLabel("MEMPLOYEE","EMAIL"), font, false, "LEFT", "MIDDLE", 1, 0) );
                // --------------- new line -----------------
                detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","TEL_EXT"), fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                detail.addCell( getCellData(screen.getDataLabel("MEMPLOYEE","TEL_EXT"), font, false, "LEFT", "MIDDLE", 1, 0) );
                int personal_cell_loop = 4;
                if(chk_wkin.equals("1")){
                    detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","EMPWORKAGES"), fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(screen.getDataLabel("MEMPLOYEE","EMPWORKAGES"), font, false, "LEFT", "MIDDLE", 1, 0) );
                    personal_cell_loop = personal_cell_loop == 0 ? 4 : personal_cell_loop - 2;
                }
                if(chk_wkout.equals("1")){
                    detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","OUT_EXP"), fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(screen.getDataLabel("MEMPLOYEE","OUT_EXP"), font, false, "LEFT", "MIDDLE", 1, 0) );
                    personal_cell_loop = personal_cell_loop == 0 ? 4 : personal_cell_loop - 2;
                }
                // --------------- new line -----------------
                if(chk_sh.equals("1")){
                    detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","TIME0"), fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(screen.getDataLabel("MTIME0","EDESC"), font, false, "LEFT", "MIDDLE", 1, 0) );
                    personal_cell_loop = personal_cell_loop == 0 ? 4 : personal_cell_loop - 2;
                }
                if(chk_wa.equals("1")){
                    detail.addCell( getCellData(langthai ? "อายุงานตำแหน่งปัจจุบัน" : "YOS in this position", fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(screen.getDataLabel("MEMPLOYEE","EMPWORKPOS"), font, false, "LEFT", "MIDDLE", 1, 0) );
                    personal_cell_loop = personal_cell_loop == 0 ? 4 : personal_cell_loop - 2;
                }
                for(int ipersonal = 0; ipersonal < personal_cell_loop; ipersonal++){
                    detail.addCell( getCellData("", font, true, "LEFT", "MIDDLE", 1, 0) );
                }
                // --------------- new line -----------------
                document.add(detail);


                // --------------- START MEMPL_FAMILY Detail -----------------
                if(chk_family.equals("1")){
                    sizeColumn = new float[] {5.0f,55.0f,20.0f,20.0f};
                    detail = new PdfPTable(4);
                    detail.setWidthPercentage(100);
                    detail.setWidths(sizeColumn);

                    setPaddingTop(5f);
                    setPaddingLeft(0f);
                    setPaddingRight(0f);
                    detail.addCell( getCellData(langthai ? "ข้อมูลครอบครัว" : "Family Information", fontTopic, true, "LEFT", "MIDDLE", 4, 0) );
                    // --------------- new line -----------------
                    setPaddingTop(0.5f);
                    setPaddingLeft(5f);
                    setPaddingRight(5f);
                    detail.addCell( getCellData(langthai ? "ลำดับ" : "Order", fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(langthai ? "ชื่อ - นามสกุล" : "Full Name", fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(langthai ? "ความสัมพันธ์" : "Relation", fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(langthai ? "อาชีพ" : "Occupation", fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    // --------------- new line -----------------
                    dbinq = (DbInquiry) screen.getInquiry().getCurrentDbRecord().getChild("MEMPL_FAMILY");
                    dbinq.refresh();
                    i=0;
                    while(dbinq.next()){
                        i++;
                        detail.addCell( getCellData(String.valueOf(i), font, false, "CENTER", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(dbinq.getString("FULLNAME"), font, false, "LEFT", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(dbinq.getString("MRELATION","EDESC"), font, false, "CENTER", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(dbinq.getString("MOCCUPATION","EDESC"), font, false, "CENTER", "MIDDLE", 1, 0) );
                        // --------------- new line -----------------
                    }
                    document.add(detail);
                }


                // --------------- Appraisal Detail -----------------
                if(chk_app.equals("1")){
                    sizeColumn = new float[] {15.0f,10.0f,10.0f,10.0f,10.0f,10.0f,10.0f,25.0f};
                    detail = new PdfPTable(8);
                    detail.setWidthPercentage(100);
                    detail.setWidths(sizeColumn);

                    setPaddingTop(5f);
                    setPaddingLeft(0f);
                    setPaddingRight(0f);
                    detail.addCell( getCellData(langthai ? "การประเมิน" : "Appraisal", fontTopic, true, "LEFT", "MIDDLE", 8, 0) );
                    // --------------- new line -----------------
                    setPaddingTop(0.5f);
                    setPaddingLeft(5f);
                    setPaddingRight(5f);
                    // --------------- new line -----------------
                    CscCalendar getYear = new CscCalendar();
                    detail.addCell( getCellData(langthai ? "ปี" : "Year", fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(langthai ? String.valueOf(getYear.getYear()+543) : String.valueOf(getYear.getYear()), font, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(langthai ? String.valueOf(getYear.getYear()+542) : String.valueOf(getYear.getYear()-1), font, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(langthai ? String.valueOf(getYear.getYear()+541) : String.valueOf(getYear.getYear()-2), font, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(langthai ? String.valueOf(getYear.getYear()+540) : String.valueOf(getYear.getYear()-3), font, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(langthai ? String.valueOf(getYear.getYear()+539) : String.valueOf(getYear.getYear()-4), font, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(langthai ? String.valueOf(getYear.getYear()+538) : String.valueOf(getYear.getYear()-5), font, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData("", font, true, "LEFT", "MIDDLE", 1, 0) );
                    // --------------- new line -----------------
                    detail.addCell( getCellData(langthai ? "ผลการประเมิน" : "Appraisal Score", fontHead, false, "LEFT", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(chk.chkNullString(screen.getString("GRADE"),"-"), font, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(chk.chkNullString(screen.getString("GRADE1"),"-"), font, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(chk.chkNullString(screen.getString("GRADE2"),"-"), font, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(chk.chkNullString(screen.getString("GRADE3"),"-"), font, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(chk.chkNullString(screen.getString("GRADE4"),"-"), font, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(chk.chkNullString(screen.getString("GRADE5"),"-"), font, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData("", font, true, "LEFT", "MIDDLE", 1, 0) );
                    // --------------- new line -----------------
                    document.add(detail);
                }


                // --------------- Education Detail -----------------
                if(chk_edu.equals("1")){
                    sizeColumn = new float[] {5.0f,14.6f,14.3f,14.3f,14.3f,14.0f,5.5f,5.5f,5.5f,7.0f};
                    detail = new PdfPTable(10);
                    detail.setWidthPercentage(100);
                    detail.setWidths(sizeColumn);

                    setPaddingTop(5f);
                    setPaddingLeft(0f);
                    setPaddingRight(0f);
                    detail.addCell( getCellData(langthai ? "การศึกษา" : "Education", fontTopic, true, "LEFT", "MIDDLE", 10, 0) );
                    // --------------- new line -----------------
                    setPaddingTop(0.5f);
                    setPaddingLeft(5f);
                    setPaddingRight(5f);
                    detail.addCell( getCellData(langthai ? "ลำดับ" : "Order", fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(screen.getLabel("MEMPL_EDUCATE","DEGREEID"), fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(screen.getLabel("MEMPL_EDUCATE","BACKGROUNDID"), fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(screen.getLabel("MEMPL_EDUCATE","INSTITUE"), fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(screen.getLabel("MEMPL_EDUCATE","FACULTY"), fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(screen.getLabel("MEMPL_EDUCATE","MAJORID"), fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(langthai ? "เกรด" : "Grade", fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(langthai ? "ปีที่เริ่ม" : "Start Year", fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(langthai ? "ถึงปี" : "End Year", fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(langthai ? "ประเทศ" : "Country", fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    // --------------- new line -----------------
                    dbinq = (DbInquiry) screen.getInquiry().getCurrentDbRecord().getChild("MEMPL_EDUCATE");
                    dbinq.refresh();
                    i=0;
                    while(dbinq.next()){
                        i++;
                        detail.addCell( getCellData(String.valueOf(i), font, false, "CENTER", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(dbinq.getString("MDEGREE","TDESC"), font, false, "LEFT", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(dbinq.getString("MEDUBACKGROUND","TDESC"), font, false, "LEFT", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(dbinq.getString("MINSTITUE","TDESC"), font, false, "LEFT", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(dbinq.getString("MFACULTY","TDESC"), font, false, "LEFT", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(dbinq.getString("MMAJOR","TDESC"), font, false, "LEFT", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(dbinq.getString("GPA").equals("0") || dbinq.getString("GPA").equals("0.00") ? "-" : dbinq.getString("GPA"), font, false, "CENTER", "MIDDLE", 1, 0) );
                        int ys = new Integer(dbinq.getString("year_start")).intValue();
                        ys = langthai ? ys+543 : ys;
                        detail.addCell( getCellData(ys > 0 ? String.valueOf(ys) : "", font, false, "CENTER", "MIDDLE", 1, 0) );
                        int ye = new Integer(dbinq.getString("year_end")).intValue();
                        ye = langthai ? ye+543 : ye;
                        detail.addCell( getCellData(ye > 0 ? String.valueOf(ye) : "", font, false, "CENTER", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(dbinq.getString("MCOUNTRY","TDESC"), font, false, "CENTER", "MIDDLE", 1, 0) );
                        // --------------- new line -----------------
                    }
                    document.add(detail);
                }


                // --------------- START MEMPL_PVF Detail -----------------
                if(chk_pvf.equals("1")){
                    sizeColumn = new float[] {5.0f,10.0f,40.0f,12.0f,8.0f,15.0f,10.0f};
                    detail = new PdfPTable(7);
                    detail.setWidthPercentage(100);
                    detail.setWidths(sizeColumn);

                    setPaddingTop(5f);
                    setPaddingLeft(0f);
                    setPaddingRight(0f);
                    detail.addCell( getCellData(langthai ? "ข้อมูลกองทุนสำรองเลี้ยงชีพ" : "Provident Fund", fontTopic, true, "LEFT", "MIDDLE", 7, 0) );
                    // --------------- new line -----------------
                    setPaddingTop(0.5f);
                    setPaddingLeft(5f);
                    setPaddingRight(5f);
                    detail.addCell( getCellData(langthai ? "ลำดับ" : "Order", fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(screen.getLabel("MEMPL_PVF","FUNDTABLEID"), fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(langthai ? "รายละเอียด" : "Description", fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(screen.getLabel("MEMPL_PVF","AMOUNT"), fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(langthai ? "หน่วย" : "Unit", fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(screen.getLabel("MEMPL_PVF","IDMEMBER"), fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(screen.getLabel("MEMPL_PVF","REGISTERDATE"), fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    // --------------- new line -----------------
                    dbinq = (DbInquiry) screen.getInquiry().getCurrentDbRecord().getChild("MEMPL_PVF");
                    dbinq.refresh();
                    i=0;
                    while(dbinq.next()){
                        i++;
                        detail.addCell( getCellData(String.valueOf(i), font, false, "CENTER", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(dbinq.getString("MEMPL_PVF","FUNDTABLEID"), font, false, "CENTER", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(dbinq.getString("MFUNDTABLE","TDESC"), font, false, "LEFT", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(dbinq.getString("MEMPL_PVF","AMOUNT"), font, false, "CENTER", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(dbinq.getCurrentDbRecord().getSystemCode("pvf_type"), font, false, "CENTER", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(dbinq.getString("MEMPL_PVF","IDMEMBER"), font, false, "CENTER", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(dbinq.getString("MEMPL_PVF","REGISTERDATE"), font, false, "CENTER", "MIDDLE", 1, 0) );
                        // --------------- new line -----------------
                    }
                    document.add(detail);
                }


                // --------------- Education Detail -----------------
                if(chk_exp.equals("1")){
                    sizeColumn = new float[] {5.0f,20.0f,20.0f,55.0f};
                    detail = new PdfPTable(4);
                    detail.setWidthPercentage(100);
                    detail.setWidths(sizeColumn);

                    setPaddingTop(5f);
                    setPaddingLeft(0f);
                    setPaddingRight(0f);
                    detail.addCell( getCellData(langthai ? "ความเชี่ยวชาญ" : "Expertise", fontTopic, true, "LEFT", "MIDDLE", 4, 0) );
                    // --------------- new line -----------------
                    setPaddingTop(0.5f);
                    setPaddingLeft(5f);
                    setPaddingRight(5f);
                    detail.addCell( getCellData(langthai ? "ลำดับ" : "Order", fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(screen.getLabel("MEMPL_EXPERTISE","EXPERTID"), fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(screen.getLabel("MEMPL_EXPERTISE","LEVELS"), fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(screen.getLabel("MEMPL_EXPERTISE","REMARKS"), fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    // --------------- new line -----------------
                    dbinq = (DbInquiry) screen.getInquiry().getCurrentDbRecord().getChild("MEMPL_EXPERTISE");
                    dbinq.refresh();
                    i=0;
                    while(dbinq.next()){
                        i++;
                        detail.addCell( getCellData(String.valueOf(i), font, false, "CENTER", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(chk.chkNullString(dbinq.getString("MEXPERTISE","TDESC"),"-"), font, false, "CENTER", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(chk.chkNullString(dbinq.getString("LEVELS"),"-"), font, false, "LEFT", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(chk.chkNullString(dbinq.getString("REMARKS"),"-"), font, false, "LEFT", "MIDDLE", 1, 0) );
                        // --------------- new line -----------------
                    }
                    document.add(detail);
                }


                // --------------- Special Abilities Detail -----------------
                if(chk_sk.equals("1")){
                    sizeColumn = new float[] {5.0f,75.0f,10.0f,10.0f};
                    detail = new PdfPTable(4);
                    detail.setWidthPercentage(100);
                    detail.setWidths(sizeColumn);

                    setPaddingTop(5f);
                    setPaddingLeft(0f);
                    setPaddingRight(0f);
                    detail.addCell( getCellData(langthai ? "ความสามารถพิเศษ" : "Special Abilities", fontTopic, true, "LEFT", "MIDDLE", 4, 0) );
                    // --------------- new line -----------------
                    setPaddingTop(0.5f);
                    setPaddingLeft(5f);
                    setPaddingRight(5f);
                    detail.addCell( getCellData(langthai ? "ลำดับ" : "Order", fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(screen.getLabel("MEMPL_SKILL","SKILLID"), fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(screen.getLabel("MEMPL_SKILL","SKILL_LEVEL"), fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(screen.getLabel("MEMPL_SKILL","REMARKS"), fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    // --------------- new line -----------------
                    dbinq = (DbInquiry) screen.getInquiry().getCurrentDbRecord().getChild("MEMPL_SKILL");
                    dbinq.refresh();
                    i=0;
                    while(dbinq.next()){
                        i++;
                        detail.addCell( getCellData(String.valueOf(i), font, false, "CENTER", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(chk.chkNullString(dbinq.getString("MSKILL","TDESC"),"-"), font, false, "LEFT", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(chk.chkNullString(dbinq.getString("SKILL_LEVEL"),"-"), font, false, "CENTER", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(chk.chkNullString(dbinq.getString("REMARKS"),"-"), font, false, "CENTER", "MIDDLE", 1, 0) );
                        // --------------- new line -----------------
                    }
                    document.add(detail);
                }


                // --------------- Work experience Detail -----------------
                if(chk_expout.equals("1")){
                    sizeColumn = new float[] {5.0f,35.0f,25.0f,10.0f,25.0f};
                    detail = new PdfPTable(5);
                    detail.setWidthPercentage(100);
                    detail.setWidths(sizeColumn);

                    setPaddingTop(5f);
                    setPaddingLeft(0f);
                    setPaddingRight(0f);
                    detail.addCell( getCellData(langthai ? "ประสบการณ์ทำงาน" : "Work experience", fontTopic, true, "LEFT", "MIDDLE", 5, 0) );
                    // --------------- new line -----------------
                    setPaddingTop(0.5f);
                    setPaddingLeft(5f);
                    setPaddingRight(5f);
                    detail.addCell( getCellData(langthai ? "ลำดับ" : "Order", fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(screen.getLabel("MEMPL_EXP","COMPANYNAME"), fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(langthai ? "ตำแหน่ง" : "Position", fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(langthai ? "เงินเดือน" : "Salary", fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(langthai ? "ช่วงการทำงาน" : "Period time", fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    // --------------- new line -----------------
                    DbInquiry mydbinq = new InitialInquiry(screen.getUProfile()).getDbInquiry("MEMPL_EXP");
                    mydbinq.setColumn("employeeid,companyid,companyname,exp_position,start_salary,end_salary,exp_from,exp_to");
                    mydbinq.setFilter("employeeid ='"+screen.getString("employeeid")+"'");
                    mydbinq.refresh();
                    String strexp="";
                    CscCalendar exfrom = null;
                    CscCalendar exto = null;
                    int exnum=1;
                    if (mydbinq.recCount()>0){
                        while (mydbinq.next()){
                            mydbinq.referLangOn();
                            detail.addCell( getCellData(String.valueOf(exnum), font, false, "CENTER", "MIDDLE", 1, 0) );
                            detail.addCell( getCellData(mydbinq.getString("companyname"), font, false, "LEFT", "MIDDLE", 1, 0) );
                            detail.addCell( getCellData(mydbinq.getString("exp_position"), font, false, "CENTER", "MIDDLE", 1, 0) );
                            detail.addCell( getCellData(mydbinq.getString("start_salary") + "-" + mydbinq.getString("end_salary"), font, false, "CENTER", "MIDDLE", 1, 0) );

                            exfrom = new CscCalendar(mydbinq.getString("exp_from"));
                            exto = new CscCalendar(mydbinq.getString("exp_to"));

                            if (screen.getUProfile().get("lang").equalsIgnoreCase("THA")){
                                strexp = exfrom.getDDThaiYYYY()+" - "+exto.getDDThaiYYYY();
                            }else{
                                strexp = exfrom.getDDEngYYYY()+" - "+exto.getDDEngYYYY();
                            }

                            detail.addCell( getCellData(strexp, font, false, "CENTER", "MIDDLE", 1, 0) );
                            // --------------- new line -----------------
                            exnum++;
                        }
                    }
                    document.add(detail);
                }


                // --------------- Movement Record Detail -----------------
                if(chk_expin.equals("1")){
                    sizeColumn = new float[] {8.0f,8.0f,14.0f,14.0f,14.0f,14.0f,14.0f,14.0f};
                    detail = new PdfPTable(8);
                    detail.setWidthPercentage(100);
                    detail.setWidths(sizeColumn);

                    setPaddingTop(5f);
                    setPaddingLeft(0f);
                    setPaddingRight(0f);
                    detail.addCell( getCellData(langthai ? "ประสบการณ์ทำงานภายใน" : "Movement Record", fontTopic, true, "LEFT", "MIDDLE", 8, 0) );
                    // --------------- new line -----------------
                    setPaddingTop(0.5f);
                    setPaddingLeft(5f);
                    setPaddingRight(5f);
                    detail.addCell( getCellData(langthai ? "วันที่สร้าง" : "Issued Date", fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(langthai ? "วันที่มีผล" : "Effective Date", fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","BU1"), fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","BU2"), fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","BU3"), fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","BU4"), fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(screen.getLabel("MEMPLOYEE","BU5"), fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    detail.addCell( getCellData(langthai ? "ประเภทการเคลื่อนไหว" : "Movement Type", fontHead, false, "CENTER", "MIDDLE", 1, 0) );
                    // --------------- new line -----------------
                    DbInquiry bu1=new InitialInquiry(screen.getUProfile()).getDbInquiry("MBU1");
                    DbInquiry bu2=new InitialInquiry(screen.getUProfile()).getDbInquiry("MBU2");
                    DbInquiry bu3=new InitialInquiry(screen.getUProfile()).getDbInquiry("MBU3");
                    DbInquiry bu4=new InitialInquiry(screen.getUProfile()).getDbInquiry("MBU4");
                    DbInquiry bu5=new InitialInquiry(screen.getUProfile()).getDbInquiry("MBU5");
                    bu1.setColumn("*");
                    bu2.setColumn("*");
                    bu3.setColumn("*");
                    bu4.setColumn("*");
                    bu5.setColumn("*");

                    dbinq =(DbInquiry) screen.getInquiry().getCurrentDbRecord().getChild("MEMPL_MOVEMENT");
                    dbinq.putChild(bu1);
                    dbinq.putChild(bu2);
                    dbinq.putChild(bu3);
                    dbinq.putChild(bu4);
                    dbinq.putChild(bu5);
                    dbinq.refresh();
                    i=0;
                        while(dbinq.next()){
                                i++;
                        detail.addCell( getCellData(chk.chkNullString(new CscCalendar(dbinq.getString("MEMPL_MOVEMENT","CREATE_DATE")).getDDMMYY(),"-"), font, false, "CENTER", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(chk.chkNullString(new CscCalendar(dbinq.getString("MEMPL_MOVEMENT","EFF_DATE")).getDDMMYY(),"-"), font, false, "CENTER", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(chk.chkNullString(dbinq.getString("MBU1","TDESC"),"-"), font, false, "LEFT", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(chk.chkNullString(dbinq.getString("MBU2","TDESC"),"-"), font, false, "LEFT", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(chk.chkNullString(dbinq.getString("MBU3","TDESC"),"-"), font, false, "LEFT", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(chk.chkNullString(dbinq.getString("MBU4","TDESC"),"-"), font, false, "LEFT", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(chk.chkNullString(dbinq.getString("MBU5","TDESC"),"-"), font, false, "LEFT", "MIDDLE", 1, 0) );
                        detail.addCell( getCellData(chk.chkNullString(screen.getInquiry().getCurrentDbRecord().getSystemCode("MEMPL_MOVEMENT","ADJ_TYPE"),"-"), font, false, "CENTER", "MIDDLE", 1, 0) );
                        // --------------- new line -----------------
                    }
                    document.add(detail);
                }


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

        if(hasData){
            OutputStream os = response.getOutputStream();
            // Create a reader
            PdfReader reader = new PdfReader(baos.toByteArray());
            // Create a stamper
            PdfStamper stamper = new PdfStamper(reader,baos);
            // Loop over the pages and add a header to each page

            // Close the stamper
            stamper.close();
            reader.close();

            response.setHeader("Expires", "0");
            response.setHeader("Cache-Control","must-revalidate, post-check=0 , pre-check=0");
            response.setHeader("Pragma", "public");
            // setting the content type
            response.setContentType("application/pdf");
            // the contentlength
            response.setContentLength(baos.size());
            // write ByteArrayOutputStream to the ServletOutputStream

            baos.writeTo(os);

            os.flush();
            os.close();
        }

        %>

        <%!
        Float padding = 0.0f;
        Float paddingtop = 0.0f;
        Float paddingbottom = 0.0f;
        Float paddingleft = 0.0f;
        Float paddingright = 0.0f;

        private PdfPCell getCellData(String text, Font font, boolean noborder, String horalign, String veralign, int colspan, int rowspan) {
            PdfPCell cellDetail = new PdfPCell(new Phrase(text,font));

            if(horalign.equalsIgnoreCase("LEFT")){
                cellDetail.setHorizontalAlignment(Element.ALIGN_LEFT);
            } else if(horalign.equalsIgnoreCase("CENTER")){
                cellDetail.setHorizontalAlignment(Element.ALIGN_CENTER);
            } else if(horalign.equalsIgnoreCase("RIGHT")){
                cellDetail.setHorizontalAlignment(Element.ALIGN_RIGHT);
            }

            if(veralign.equalsIgnoreCase("TOP")){
                cellDetail.setVerticalAlignment(Element.ALIGN_TOP);
            } else if(veralign.equalsIgnoreCase("MIDDLE")){
                cellDetail.setVerticalAlignment(Element.ALIGN_MIDDLE);
            } else if(veralign.equalsIgnoreCase("BOTTOM")){
                cellDetail.setVerticalAlignment(Element.ALIGN_BOTTOM);
            }

            if(padding > 0.0f){
                cellDetail.setPadding(padding);
            }
            if(paddingtop > 0.0f){
                cellDetail.setPaddingTop(paddingtop);
            }
            if(paddingbottom > 0.0f){
                cellDetail.setPaddingBottom(paddingbottom);
            }
            if(paddingleft > 0.0f){
                cellDetail.setPaddingLeft(paddingleft);
            }
            if(paddingright > 0.0f){
                cellDetail.setPaddingRight(paddingright);
            }
            if(colspan > 0){
                cellDetail.setColspan(colspan);
            }
            if(rowspan > 0){
                cellDetail.setRowspan(rowspan);
            }
            if(noborder){
                cellDetail.setBorder(Rectangle.NO_BORDER);
            }

            return cellDetail;
        }

        private void setPadding(Float padding) {
            this.padding = padding;
        }

        private void setPaddingTop(Float padding) {
            this.paddingtop = padding;
        }

        private void setPaddingBottom(Float padding) {
            this.paddingbottom = padding;
        }

        private void setPaddingLeft(Float padding) {
            this.paddingleft = padding;
        }

        private void setPaddingRight(Float padding) {
            this.paddingright = padding;
        }
        %>

    </body>
</html>