Example usage for com.lowagie.text Phrase Phrase

List of usage examples for com.lowagie.text Phrase Phrase

Introduction

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

Prototype

public Phrase(float leading, String string) 

Source Link

Document

Constructs a Phrase with a certain leading and a certain String.

Usage

From source file:com.kwoksys.biz.reports.writers.PdfReportWriter.java

License:Apache License

@Override
public void addRow(List<String> row) throws Exception {
    for (int i = 0; i < row.size(); i++) {
        Paragraph para = new Paragraph();
        para.add(new Phrase(columnHeaders.get(i), fontHeader));
        para.add(new Phrase(": " + StringUtils.replaceNull(row.get(i)), font));
        document.add(para);/*from  w w  w.j av  a2 s  .  co m*/
    }
    document.add(new Paragraph(" "));
}

From source file:com.lapis.jsfexporter.pdf.PDFExportType.java

License:Apache License

@Override
public Integer exportRow(IExportRow row) {
    for (IExportCell cell : row.getCells()) {
        PdfPCell pdfCell = new PdfPCell();
        pdfCell.setColspan(cell.getColumnSpanCount());
        pdfCell.setRowspan(cell.getRowSpanCount());
        pdfCell.setPhrase(new Phrase(cell.getValue(), font));
        table.addCell(pdfCell);/*from www. j  a  v  a 2s. c om*/
    }

    return rowCount++;
}

From source file:com.macrosoft.icms.util.PDFCreator.java

public static void createPdfByData(String fileName, String path, Map dataMap) {
    Document document = new Document(PageSize.A4.rotate(), 50, 50, 50, 50);
    String opetype = (String) dataMap.get("opetype");

    try {//w w w .  j a v a2  s .  c  o m
        //PDF
        File file = new File(path);
        if (!file.exists()) {
            file.mkdirs();
        }
        PdfWriter.getInstance(document, new FileOutputStream(path + fileName));

        //PDF
        document.open();

        //
        BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
        Font titleChinese = new Font(bfChinese, 30, Font.BOLD);
        //table
        Font contentFont = new Font(bfChinese, 16, Font.NORMAL);
        //table
        Font tblTitleFont = new Font(bfChinese, 16, Font.BOLD);
        //PDF
        Paragraph title = new Paragraph((String) dataMap.get("title"), titleChinese);
        title.setAlignment(Paragraph.ALIGN_CENTER);
        document.add(title);

        Paragraph attionTitle = new Paragraph("", contentFont);
        attionTitle.setAlignment(Paragraph.ALIGN_CENTER);

        if ("GT".equals(opetype)) {
            Map<String, String> gtMap = (Map<String, String>) dataMap.get("gtMap");
            Table gtxxtable = new Table(5);
            int gtxxwidths[] = { 30, 15, 20, 15, 20 };
            gtxxtable.setWidths(gtxxwidths);
            gtxxtable.setWidth(100);
            gtxxtable.setPadding(3);
            gtxxtable.setBorderWidth(1);
            gtxxtable.setAlignment(Cell.ALIGN_CENTER);

            Cell cell = new Cell(new Phrase(" ", contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase(gtMap == null ? "" : gtMap.get("traname"), contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setColspan(4);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase("", contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setRowspan(7);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase("", contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase(gtMap == null ? "" : gtMap.get("name"), contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase("", contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase(gtMap == null ? "" : gtMap.get("sex"), contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase("", contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase(gtMap == null ? "" : gtMap.get("cerno"), contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setColspan(3);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase("", contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase(gtMap == null ? "" : gtMap.get("dom"), contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setColspan(3);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase("", contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase(gtMap == null ? "" : gtMap.get("postalcode"), contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase("", contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase(gtMap == null ? "" : gtMap.get("tel"), contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase("", contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase(gtMap == null ? "" : gtMap.get("email"), contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setColspan(3);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase("", contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase(gtMap == null ? "" : gtMap.get("polstand"), contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase("", contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase(gtMap == null ? "" : gtMap.get("nation"), contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase("", contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase(gtMap == null ? "" : gtMap.get("litedeg"), contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase("", contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase(gtMap == null ? "" : gtMap.get("occstbeapp"), contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase("", contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.setRowspan(2);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase(gtMap == null ? "" : gtMap.get("grjy"), contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setColspan(4);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase(gtMap == null ? "" : gtMap.get("jtjy"), contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase("", contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase(gtMap == null ? "" : gtMap.get("fammember"), contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setColspan(2);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase("", contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase(gtMap == null ? "" : gtMap.get("busscoandform"), contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setColspan(4);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase("", contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase(gtMap == null ? "" : gtMap.get("oploc"), contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setColspan(4);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase("", contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase(gtMap == null ? "" : gtMap.get("empnum"), contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase("", contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            gtxxtable.addCell(cell);
            cell = new Cell(new Phrase(gtMap == null ? "" : gtMap.get("capam"), contentFont));
            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
            cell.setColspan(2);
            gtxxtable.addCell(cell);

            Paragraph p1 = new Paragraph(
                    "\n    ",
                    contentFont);
            Paragraph p2 = new Paragraph(" ", contentFont);
            p2.setIndentationLeft(500);
            Paragraph p3 = new Paragraph("                         ", contentFont);
            p3.setIndentationLeft(500);
            cell = new Cell();
            cell.add(p1);
            cell.add(p2);
            cell.add(p3);
            cell.setColspan(5);
            gtxxtable.addCell(cell);

            document.add(gtxxtable);

            Paragraph wtitle = new Paragraph("\n", titleChinese);
            wtitle.setAlignment(Paragraph.ALIGN_CENTER);
            document.add(wtitle);

            Map<String, String> wtrMap = (Map<String, String>) dataMap.get("wtrMap");
            Paragraph wtr = new Paragraph("\n :" + (wtrMap == null ? "" : wtrMap.get("sqr")),
                    contentFont);
            document.add(wtr);
            wtr = new Paragraph(" " + (wtrMap == null ? "" : wtrMap.get("wtr")), contentFont);
            document.add(wtr);
            wtr = new Paragraph("  \n", contentFont);
            document.add(wtr);
            wtr = new Paragraph("1. " + (wtrMap == null ? " " : wtrMap.get("qx1"))
                    + "  ", contentFont);
            wtr.setIndentationLeft(100);
            document.add(wtr);
            wtr = new Paragraph("2. " + (wtrMap == null ? " " : wtrMap.get("qx2"))
                    + "  ", contentFont);
            wtr.setIndentationLeft(100);
            document.add(wtr);
            wtr = new Paragraph(
                    "3. " + (wtrMap == null ? " " : wtrMap.get("qx3")) + "  ",
                    contentFont);
            wtr.setIndentationLeft(100);
            document.add(wtr);
            wtr = new Paragraph("4. " + (wtrMap == null ? " " : wtrMap.get("qx4"))
                    + "  ", contentFont);
            wtr.setIndentationLeft(100);
            document.add(wtr);

            wtr = new Paragraph("\n   " + (wtrMap == null ? "" : wtrMap.get("confrom"))
                    + "         " + (wtrMap == null ? "" : wtrMap.get("conto")) + "\n", contentFont);
            document.add(wtr);

            Table t = new Table(4);
            int twidths[] = { 20, 30, 20, 30 };
            t.setWidths(twidths);
            t.setWidth(100);
            t.setPadding(3);
            t.setBorderWidth(1);
            t.setAlignment(Cell.ALIGN_CENTER);

            Cell tCell = new Cell(new Phrase("", contentFont));
            tCell.setColspan(2);
            tCell.setHorizontalAlignment(Element.ALIGN_CENTER);
            t.addCell(tCell);
            tCell = new Cell(new Phrase(wtrMap == null ? "" : wtrMap.get("unit"), contentFont));
            tCell.setColspan(2);
            tCell.setHorizontalAlignment(Element.ALIGN_CENTER);
            t.addCell(tCell);
            tCell = new Cell(new Phrase("", contentFont));
            tCell.setHorizontalAlignment(Element.ALIGN_CENTER);
            t.addCell(tCell);
            tCell = new Cell(new Phrase(wtrMap == null ? "" : wtrMap.get("postalcode"), contentFont));
            tCell.setHorizontalAlignment(Element.ALIGN_CENTER);
            t.addCell(tCell);
            tCell = new Cell(new Phrase("", contentFont));
            tCell.setHorizontalAlignment(Element.ALIGN_CENTER);
            t.addCell(tCell);
            tCell = new Cell(new Phrase(wtrMap == null ? "" : wtrMap.get("tel"), contentFont));
            tCell.setHorizontalAlignment(Element.ALIGN_CENTER);
            t.addCell(tCell);
            document.add(t);

            Paragraph pp = new Paragraph("\n", contentFont);
            document.add(pp);
            pp = new Paragraph("                                                                     ",
                    contentFont);
            pp.setAlignment(Paragraph.ALIGN_RIGHT);
            document.add(pp);

        } else {
            //
            //
            Table jbxxtable = new Table(4);
            int jbxxwidths[] = { 20, 30, 20, 30 };
            jbxxtable.setWidths(jbxxwidths);
            jbxxtable.setWidth(100);
            jbxxtable.setPadding(3);
            jbxxtable.setBorderWidth(1);
            jbxxtable.setAlignment(Cell.ALIGN_CENTER);

            //
            Cell jbxxTitle = new Cell(new Phrase("", tblTitleFont));
            jbxxTitle.setColspan(4);
            jbxxTitle.setHorizontalAlignment(Element.ALIGN_CENTER);
            jbxxtable.addCell(jbxxTitle);

            Map<String, String> jbxxMap = (Map<String, String>) dataMap.get("jbxxMap");

            if ("GS".equals(opetype) || "NZFR".equals(opetype) || "HHQY".equals(opetype)
                    || "GRDZ".equals(opetype) || "WZGS".equals(opetype) || "WZHH".equals(opetype)
                    || "HZS".equals(opetype) || "HZSFZ".equals(opetype)) {
                Cell jbxxName = new Cell(new Phrase(" ", contentFont));
                jbxxName.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(jbxxName);

                Cell jbxxNameValue = new Cell(
                        new Phrase(jbxxMap == null ? "" : jbxxMap.get("entname"), contentFont));
                jbxxNameValue.setColspan(3);
                jbxxtable.addCell(jbxxNameValue);

                Cell jbxxRegno = new Cell(new Phrase("/\n", contentFont));
                jbxxRegno.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(jbxxRegno);
                if ("WZGS".equals(opetype)) {
                    Cell jbxxRegnoValue = new Cell(
                            new Phrase(jbxxMap == null ? "" : jbxxMap.get("regno"), contentFont));
                    jbxxtable.addCell(jbxxRegnoValue);
                    Cell gbc = new Cell(new Phrase("", contentFont));
                    gbc.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(gbc);
                    gbc = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("country"), contentFont));
                    gbc.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(gbc);
                } else {
                    Cell jbxxRegnoValue = new Cell(
                            new Phrase(jbxxMap == null ? "" : jbxxMap.get("regno"), contentFont));
                    jbxxRegnoValue.setColspan(3);
                    jbxxtable.addCell(jbxxRegnoValue);
                }
            } else if ("FGS".equals(opetype) || "NZYY".equals(opetype) || "HHFZ".equals(opetype)
                    || "GRDZFZ".equals(opetype) || "WZFZ".equals(opetype) || "WZHHFZ".equals(opetype)) {
                String lsdw = "";
                if ("NZYY".equals(opetype) || "WZFZ".equals(opetype) || "WZHHFZ".equals(opetype)) {
                    lsdw = "";
                }
                Cell cell = null;
                if (!"HHFZ".equals(opetype) && !"GRDZFZ".equals(opetype)) {
                    cell = new Cell(new Phrase(lsdw, contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("supentname"), contentFont));
                    jbxxtable.addCell(cell);

                    cell = new Cell(new Phrase("/", contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("supregno"), contentFont));
                    jbxxtable.addCell(cell);
                }

                String fgsname = "";
                if ("NZYY".equals(opetype)) {
                    fgsname = "";
                } else if ("HHFZ".equals(opetype) || "GRDZFZ".equals(opetype) || "WZFZ".equals(opetype)
                        || "WZHHFZ".equals(opetype)) {
                    fgsname = "";
                }
                cell = new Cell(new Phrase(fgsname, contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("entname"), contentFont));
                jbxxtable.addCell(cell);

                String regname = "//";
                if ("NZYY".equals(opetype)) {
                    regname = "//";
                } else if ("NZYY".equals(opetype) || "GRDZFZ".equals(opetype) || "WZFZ".equals(opetype)) {
                    regname = "//";
                }
                cell = new Cell(new Phrase(regname, contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("regno"), contentFont));
                jbxxtable.addCell(cell);
            }
            if ("WGJY".equals(opetype)) {
                Cell cell = new Cell(new Phrase(" ", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("entname"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("/", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("regno"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(" ", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("dom"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                jbxxtable.addCell(cell);
            } else if ("WGDB".equals(opetype)) {
                Cell cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("entname"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("/", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("regno"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("dom"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                jbxxtable.addCell(cell);
            } else {
                String domname = "";
                if ("FGS".equals(opetype) || "WZHHFZ".equals(opetype)) {
                    domname = "";
                } else if ("GRDZ".equals(opetype)) {
                    domname = "";
                } else if ("GRDZFZ".equals(opetype) || "HHFZ".equals(opetype) || "HZSFZ".equals(opetype)) {
                    domname = "";
                } else if ("WZHH".equals(opetype) || "HHQY".equals(opetype)) {
                    domname = "";
                }
                Cell jbxxDom = new Cell(new Phrase(domname, contentFont));
                jbxxDom.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(jbxxDom);

                Cell jbxxDomValue = new Cell(
                        new Phrase(jbxxMap == null ? "" : jbxxMap.get("dom"), contentFont));
                jbxxDomValue.setColspan(3);
                jbxxtable.addCell(jbxxDomValue);

                Cell jbxxOploc = new Cell(new Phrase("", contentFont));
                jbxxOploc.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(jbxxOploc);

                Cell jbxxOplocValue = new Cell(
                        new Phrase(jbxxMap == null ? "" : jbxxMap.get("oploc"), contentFont));
                jbxxOplocValue.setColspan(3);
                jbxxtable.addCell(jbxxOplocValue);
            }

            Cell jbxxTel = new Cell(new Phrase("", contentFont));
            jbxxTel.setHorizontalAlignment(Element.ALIGN_CENTER);
            jbxxtable.addCell(jbxxTel);

            Cell jbxxTelValue = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("tel"), contentFont));
            jbxxTelValue.setHorizontalAlignment(Element.ALIGN_CENTER);
            jbxxtable.addCell(jbxxTelValue);

            Cell jbxxEmail = new Cell(new Phrase("", contentFont));
            jbxxEmail.setHorizontalAlignment(Element.ALIGN_CENTER);
            jbxxtable.addCell(jbxxEmail);

            Cell jbxxEmailValue = new Cell(
                    new Phrase(jbxxMap == null ? "" : jbxxMap.get("postalcode"), contentFont));
            jbxxEmailValue.setHorizontalAlignment(Element.ALIGN_CENTER);
            jbxxtable.addCell(jbxxEmailValue);

            //
            String slname = " ";
            if ("NZFR".equals(opetype) || "NZYY".equals(opetype) || "WGJY".equals(opetype)) {
                slname = "";
            }
            Cell slTitle = new Cell(new Phrase(slname, tblTitleFont));
            slTitle.setColspan(4);
            slTitle.setHorizontalAlignment(Element.ALIGN_CENTER);
            jbxxtable.addCell(slTitle);

            if ("GS".equals(opetype) || "NZFR".equals(opetype) || "WZGS".equals(opetype)) {
                Cell jbxxLerep = new Cell(new Phrase("", contentFont));
                jbxxLerep.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(jbxxLerep);

                Cell jbxxLerepValue = new Cell(
                        new Phrase(jbxxMap == null ? "" : jbxxMap.get("lerep"), contentFont));
                jbxxLerepValue.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(jbxxLerepValue);

                if ("WZGS".equals(opetype)) {
                    Cell cell = new Cell(new Phrase("", contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("country"), contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase("", contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("position"), contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    cell.setColspan(3);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase("", contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("congro"), contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase("", contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("congrocur"), contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase("", contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("congrousd"), contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase("", contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("regcap"), contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase("", contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("enttype"), contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase("", contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("insform"), contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase("\n\n\n", contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("busscope"), contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    cell.setColspan(3);
                    jbxxtable.addCell(cell);
                } else {
                    Cell jbxxPosition = new Cell(new Phrase(" ", contentFont));
                    jbxxPosition.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(jbxxPosition);

                    Cell jbxxPositionValue = new Cell(
                            new Phrase(jbxxMap == null ? "" : jbxxMap.get("position"), contentFont));
                    jbxxPositionValue.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(jbxxPositionValue);

                    String regcapname = "";
                    if ("NZFR".equals(opetype)) {
                        regcapname = "";
                    }
                    Cell jbxxRegcap = new Cell(new Phrase(regcapname, contentFont));
                    jbxxRegcap.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(jbxxRegcap);

                    Cell jbxxRegcapValue = new Cell(
                            new Phrase(jbxxMap == null ? "" : jbxxMap.get("regcap"), contentFont));
                    jbxxRegcapValue.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(jbxxRegcapValue);

                    String enttypename = "";
                    if ("NZFR".equals(opetype)) {
                        enttypename = "";
                    }
                    Cell jbxxEnttype = new Cell(new Phrase(enttypename, contentFont));
                    jbxxEnttype.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(jbxxEnttype);

                    Cell jbxxEnttypeValue = new Cell(
                            new Phrase(jbxxMap == null ? "" : jbxxMap.get("enttype"), contentFont));
                    jbxxEnttypeValue.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(jbxxEnttypeValue);
                }

                if ("GS".equals(opetype)) {
                    Cell jbxxInsform = new Cell(new Phrase("\n", contentFont));
                    jbxxInsform.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(jbxxInsform);

                    Cell jbxxInsformValue = new Cell(
                            new Phrase(jbxxMap == null ? "" : jbxxMap.get("insform"), contentFont));
                    jbxxInsformValue.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxInsformValue.setColspan(3);
                    jbxxtable.addCell(jbxxInsformValue);

                    Cell jbxxBusscope = new Cell(new Phrase("\n\n\n", contentFont));
                    jbxxBusscope.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(jbxxBusscope);

                    Cell jbxxBusscopeValue = new Cell(
                            new Phrase(jbxxMap == null ? "" : jbxxMap.get("busscope"), contentFont));
                    jbxxBusscopeValue.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxBusscopeValue.setColspan(3);
                    jbxxtable.addCell(jbxxBusscopeValue);
                }

                Cell jbxxOpfyears = new Cell(new Phrase("", contentFont));
                jbxxOpfyears.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(jbxxOpfyears);

                Cell jbxxOpfyearsValue = new Cell(
                        new Phrase(jbxxMap == null ? "" : jbxxMap.get("opfyears"), contentFont));
                jbxxOpfyearsValue.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(jbxxOpfyearsValue);

                Cell jbxxConum = new Cell(new Phrase("", contentFont));
                jbxxConum.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(jbxxConum);

                Cell jbxxConumValue = new Cell(
                        new Phrase(jbxxMap == null ? "" : jbxxMap.get("conum"), contentFont));
                jbxxConumValue.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(jbxxConumValue);

                if ("NZFR".equals(opetype)) {
                    Cell jbxxBusscope = new Cell(new Phrase("\n\n\n", contentFont));
                    jbxxBusscope.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(jbxxBusscope);

                    Cell jbxxBusscopeValue = new Cell(
                            new Phrase(jbxxMap == null ? "" : jbxxMap.get("busscope"), contentFont));
                    jbxxBusscopeValue.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxBusscopeValue.setColspan(3);
                    jbxxtable.addCell(jbxxBusscopeValue);
                }
            } else if ("FGS".equals(opetype) || "NZYY".equals(opetype) || "HHFZ".equals(opetype)
                    || "GRDZFZ".equals(opetype) || "WZFZ".equals(opetype) || "WZHHFZ".equals(opetype)
                    || "HZSFZ".equals(opetype)) {
                Cell cell = null;
                if ("HHFZ".equals(opetype) || "GRDZFZ".equals(opetype)) {
                    cell = new Cell(new Phrase("", contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("lerep"), contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase("", contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("houseadd"), contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase("", contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("cerno"), contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase("", contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("empno"), contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase("", contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("tel"), contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase("", contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("postalcode"), contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase("", contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("yysj"), contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    cell.setColspan(3);
                    jbxxtable.addCell(cell);
                } else {
                    cell = new Cell(new Phrase("", contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("lerep"), contentFont));
                    jbxxtable.addCell(cell);
                    if ("NZYY".equals(opetype)) {
                        cell = new Cell(new Phrase("", contentFont));
                        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                        jbxxtable.addCell(cell);
                        cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("tel"), contentFont));
                        jbxxtable.addCell(cell);
                        cell = new Cell(new Phrase("", contentFont));
                        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                        jbxxtable.addCell(cell);
                        cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("regcap"), contentFont));
                        jbxxtable.addCell(cell);
                    }
                    cell = new Cell(new Phrase("", contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    jbxxtable.addCell(cell);
                    cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("conum"), contentFont));
                    jbxxtable.addCell(cell);
                }

                String bussname = "";
                if ("FGS".equals(opetype)) {
                    bussname = "";
                } else if ("HHFZ".equals(opetype) || "GRDZFZ".equals(opetype) || "WZHHFZ".equals(opetype)) {
                    bussname = "";
                }
                cell = new Cell(new Phrase(bussname, contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("busscope"), contentFont));
                cell.setColspan(3);
                jbxxtable.addCell(cell);

                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(
                        new Phrase(jbxxMap == null ? "" : jbxxMap.get("calculationmethod"), contentFont));
                cell.setColspan(3);
                jbxxtable.addCell(cell);
            } else if ("HHQY".equals(opetype)) {
                Cell hhcell = new Cell(new Phrase("", contentFont));
                hhcell.setRowspan(2);
                hhcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(hhcell);
                hhcell = new Cell(new Phrase("", contentFont));
                hhcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                hhcell.setColspan(2);
                jbxxtable.addCell(hhcell);
                hhcell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("lerep"), contentFont));
                hhcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(hhcell);
                hhcell = new Cell(
                        new Phrase("", contentFont));
                hhcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                hhcell.setColspan(2);
                jbxxtable.addCell(hhcell);
                hhcell = new Cell(new Phrase("", contentFont));
                hhcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(hhcell);
                hhcell = new Cell(new Phrase("", contentFont));
                hhcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(hhcell);
                hhcell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("hhlx"), contentFont));
                hhcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                hhcell.setColspan(3);
                jbxxtable.addCell(hhcell);
                hhcell = new Cell(new Phrase("", contentFont));
                hhcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(hhcell);
                hhcell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("hhcze"), contentFont));
                hhcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                hhcell.setColspan(3);
                jbxxtable.addCell(hhcell);
                hhcell = new Cell(new Phrase("\n\n\n", contentFont));
                hhcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(hhcell);
                hhcell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("busscope"), contentFont));
                hhcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                hhcell.setColspan(3);
                jbxxtable.addCell(hhcell);
                hhcell = new Cell(new Phrase("", contentFont));
                hhcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(hhcell);
                hhcell = new Cell(new Phrase(" ______________________________________________",
                        contentFont));
                hhcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                hhcell.setColspan(3);
                jbxxtable.addCell(hhcell);
                hhcell = new Cell(new Phrase("", contentFont));
                hhcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(hhcell);
                hhcell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("parnum"), contentFont));
                hhcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(hhcell);
                hhcell = new Cell(new Phrase("", contentFont));
                hhcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(hhcell);
                hhcell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("exenum"), contentFont));
                hhcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(hhcell);
                hhcell = new Cell(new Phrase("", contentFont));
                hhcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(hhcell);
                hhcell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("empnum"), contentFont));
                hhcell.setHorizontalAlignment(Element.ALIGN_CENTER);
                hhcell.setColspan(3);
                jbxxtable.addCell(hhcell);
            } else if ("GRDZ".equals(opetype)) {
                Cell cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("regcap"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("empnum"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("grczfs"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("\n\n\n", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("busscope"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                jbxxtable.addCell(cell);
            } else if ("WZHH".equals(opetype)) {
                Cell cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("lerep"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("  ", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("country"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("regcap"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("reccap"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("regcapcur"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("enttype"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("\n\n\n", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("busscope"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("opfyears"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("conum"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
            } else if ("WGJY".equals(opetype)) {
                Cell cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("enttype"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("depincha"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("exaauth"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("sandate"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("lerep"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("busscope"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("regcap"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("regcapcur"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("yysj"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("itemofoporcpro"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("forentname"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("forentadd"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("forentscope"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                jbxxtable.addCell(cell);
            } else if ("WGDB".equals(opetype)) {
                Cell cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("lerep"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("busscope"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("yysj"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("regorg"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("yysj"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("sandate"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("sandocno"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);

                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(4);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("forentname"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("forentforname"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(" ", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("forentadd"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("cxqx"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("forentautsign"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("forenliafor"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("forentcap"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("country"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("forentscope"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                jbxxtable.addCell(cell);
            } else if ("HZS".equals(opetype)) {
                Cell cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("lerep"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("regcap"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                jbxxtable.addCell(cell);
                Paragraph p1 = new Paragraph("    " + dataMap.get("cyzs") + "     ",
                        contentFont);
                Paragraph p2 = new Paragraph("    " + dataMap.get("nmcy")
                        + "          " + dataMap.get("nmcyrate") + "   %", contentFont);
                p2.setIndentationLeft(60);
                Paragraph p3 = new Paragraph("     " + dataMap.get("frcy")
                        + "          " + dataMap.get("frcyrate") + "   %", contentFont);
                p3.setIndentationLeft(120);

                cell = new Cell();
                cell.add(p1);
                cell.add(p2);
                cell.add(p3);
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(4);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase("\n\n\n", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                jbxxtable.addCell(cell);
                cell = new Cell(new Phrase(jbxxMap == null ? "" : jbxxMap.get("busscope"), contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(3);
                jbxxtable.addCell(cell);
            }

            document.add(jbxxtable);

            //
            //TABLE
            Table remarktable = new Table(6);
            int remarkwidths[] = { 15, 10, 20, 15, 20, 20 };
            remarktable.setWidths(remarkwidths);
            remarktable.setWidth(100);
            remarktable.setPadding(3);
            remarktable.setBorderWidth(1);
            remarktable.setAlignment(Cell.ALIGN_CENTER);
            if ("GS".equals(opetype) || "NZFR".equals(opetype) || "HHQY".equals(opetype)
                    || "HHFZ".equals(opetype) || "GRDZ".equals(opetype) || "GRDZFZ".equals(opetype)
                    || "WZGS".equals(opetype) || "WZHH".equals(opetype) || "HZS".equals(opetype)) {
                Cell bgTitle = new Cell(new Phrase("", tblTitleFont));
                bgTitle.setColspan(6);
                bgTitle.setHorizontalAlignment(Element.ALIGN_CENTER);
                remarktable.addCell(bgTitle);

                Cell bg1 = new Cell(new Phrase("", contentFont));
                bg1.setColspan(2);
                bg1.setHorizontalAlignment(Element.ALIGN_CENTER);
                remarktable.addCell(bg1);

                Cell bg2 = new Cell(new Phrase("", contentFont));
                bg2.setColspan(2);
                bg2.setHorizontalAlignment(Element.ALIGN_CENTER);
                remarktable.addCell(bg2);

                Cell bg3 = new Cell(new Phrase("", contentFont));
                bg3.setColspan(2);
                bg3.setHorizontalAlignment(Element.ALIGN_CENTER);
                remarktable.addCell(bg3);

                for (int i = 0; i < 5; i++) {
                    Cell bg11 = new Cell("");
                    bg11.setColspan(2);
                    remarktable.addCell(bg11);

                    Cell bg21 = new Cell(" ");
                    bg21.setColspan(2);
                    remarktable.addCell(bg21);

                    Cell bg31 = new Cell(" ");
                    bg31.setColspan(2);
                    remarktable.addCell(bg31);
                }

                if ("GS".equals(opetype) || "HHQY".equals(opetype) || "GRDZ".equals(opetype)
                        || "WZGS".equals(opetype) || "WZHH".equals(opetype) || "HZS".equals(opetype)) {
                    Cell baTitle = new Cell(new Phrase(" ", tblTitleFont));
                    baTitle.setColspan(6);
                    baTitle.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(baTitle);

                    Cell fgsCell = new Cell(new Phrase("\n", contentFont));
                    fgsCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    fgsCell.setRowspan(2);
                    remarktable.addCell(fgsCell);

                    Cell nameCell = new Cell(new Phrase("", contentFont));
                    nameCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(nameCell);

                    Cell nameValueCell = new Cell(new Phrase("", contentFont));
                    remarktable.addCell(nameValueCell);

                    Cell regnoCell = new Cell(new Phrase("/", contentFont));
                    regnoCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    regnoCell.setColspan(2);
                    remarktable.addCell(regnoCell);

                    Cell regnoValueCell = new Cell(new Phrase("", contentFont));
                    remarktable.addCell(regnoValueCell);

                    Cell djjgCell = new Cell(new Phrase("", contentFont));
                    djjgCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(djjgCell);

                    Cell djjgValueCell = new Cell(new Phrase("", contentFont));
                    remarktable.addCell(djjgValueCell);

                    Cell djrqCell = new Cell(new Phrase("", contentFont));
                    djrqCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    djrqCell.setColspan(2);
                    remarktable.addCell(djrqCell);

                    Cell djrqValueCell = new Cell(new Phrase("", contentFont));
                    remarktable.addCell(djrqValueCell);

                    if ("GRDZ".equals(opetype)) {
                        Cell qtc = new Cell(new Phrase("", contentFont));
                        qtc.setHorizontalAlignment(Element.ALIGN_CENTER);
                        remarktable.addCell(qtc);
                        qtc = new Cell(new Phrase("     ", contentFont));
                        qtc.setHorizontalAlignment(Element.ALIGN_CENTER);
                        qtc.setColspan(5);
                        remarktable.addCell(qtc);
                    } else {
                        Cell qszCell = new Cell(new Phrase("", contentFont));
                        qszCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                        qszCell.setRowspan(2);
                        remarktable.addCell(qszCell);

                        Cell cyCell = new Cell(new Phrase("", contentFont));
                        cyCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                        remarktable.addCell(cyCell);

                        Cell cyValueCell = new Cell(new Phrase("", contentFont));
                        cyValueCell.setColspan(4);
                        remarktable.addCell(cyValueCell);

                        Cell fzrCell = new Cell(new Phrase("", contentFont));
                        fzrCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                        remarktable.addCell(fzrCell);

                        Cell fzrValueCell = new Cell(new Phrase("", contentFont));
                        remarktable.addCell(fzrValueCell);

                        Cell lxdhCell = new Cell(new Phrase("", contentFont));
                        lxdhCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                        lxdhCell.setColspan(2);
                        remarktable.addCell(lxdhCell);

                        Cell lxdhValueCell = new Cell(new Phrase("", contentFont));
                        remarktable.addCell(lxdhValueCell);
                    }

                    if ("GS".equals(opetype) || "WZGS".equals(opetype)) {
                        Cell qtCell = new Cell(new Phrase("", contentFont));
                        qtCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                        remarktable.addCell(qtCell);
                        Cell qtValueCell = new Cell(new Phrase(
                                "                    ",
                                contentFont));
                        qtValueCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                        qtValueCell.setColspan(5);
                        remarktable.addCell(qtValueCell);
                    } else if ("HHQY".equals(opetype)) {
                        Cell qtCell = new Cell(new Phrase("", contentFont));
                        qtCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                        remarktable.addCell(qtCell);
                        Cell qtValueCell = new Cell(
                                new Phrase("        ", contentFont));
                        qtValueCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                        qtValueCell.setColspan(5);
                        remarktable.addCell(qtValueCell);
                        qtCell = new Cell(new Phrase("", contentFont));
                        qtCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                        remarktable.addCell(qtCell);
                        qtValueCell = new Cell(new Phrase("         ", contentFont));
                        qtValueCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                        qtValueCell.setColspan(5);
                        remarktable.addCell(qtValueCell);
                    }

                } else if ("NZFR".equals(opetype)) {
                    Cell nzfrCell = new Cell(new Phrase("", contentFont));
                    nzfrCell.setRowspan(2);
                    nzfrCell.setColspan(2);
                    nzfrCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(nzfrCell);
                    nzfrCell = new Cell(new Phrase("", contentFont));
                    nzfrCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(nzfrCell);
                    nzfrCell = new Cell(new Phrase("", contentFont));
                    nzfrCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(nzfrCell);
                    nzfrCell = new Cell(new Phrase("", contentFont));
                    nzfrCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(nzfrCell);
                    nzfrCell = new Cell(new Phrase("", contentFont));
                    nzfrCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(nzfrCell);
                    nzfrCell = new Cell(new Phrase("  ", contentFont));
                    nzfrCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(nzfrCell);
                    nzfrCell = new Cell(new Phrase("  ", contentFont));
                    nzfrCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(nzfrCell);
                    nzfrCell = new Cell(new Phrase("", contentFont));
                    nzfrCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(nzfrCell);
                    nzfrCell = new Cell(new Phrase("  ", contentFont));
                    nzfrCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(nzfrCell);

                    nzfrCell = new Cell(new Phrase(" ", tblTitleFont));
                    nzfrCell.setColspan(6);
                    nzfrCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(nzfrCell);

                    nzfrCell = new Cell(new Phrase("\n", contentFont));
                    nzfrCell.setRowspan(4);
                    nzfrCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(nzfrCell);

                    nzfrCell = new Cell(new Phrase("", contentFont));
                    nzfrCell.setColspan(2);
                    nzfrCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(nzfrCell);
                    nzfrCell = new Cell(new Phrase(" ", contentFont));
                    nzfrCell.setColspan(3);
                    remarktable.addCell(nzfrCell);
                    nzfrCell = new Cell(new Phrase("", contentFont));
                    nzfrCell.setColspan(2);
                    nzfrCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(nzfrCell);
                    nzfrCell = new Cell(new Phrase(" ", contentFont));
                    nzfrCell.setColspan(3);
                    remarktable.addCell(nzfrCell);
                    nzfrCell = new Cell(new Phrase("", contentFont));
                    nzfrCell.setColspan(2);
                    nzfrCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(nzfrCell);
                    nzfrCell = new Cell(new Phrase(" ", contentFont));
                    nzfrCell.setColspan(3);
                    remarktable.addCell(nzfrCell);
                    nzfrCell = new Cell(new Phrase("", contentFont));
                    nzfrCell.setColspan(2);
                    nzfrCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(nzfrCell);
                    nzfrCell = new Cell(new Phrase(" ", contentFont));
                    nzfrCell.setColspan(3);
                    remarktable.addCell(nzfrCell);

                    nzfrCell = new Cell(new Phrase("", contentFont));
                    nzfrCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(nzfrCell);
                    nzfrCell = new Cell(new Phrase("    ", contentFont));
                    nzfrCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    nzfrCell.setColspan(2);
                    remarktable.addCell(nzfrCell);
                    nzfrCell = new Cell(new Phrase("", contentFont));
                    nzfrCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(nzfrCell);
                    nzfrCell = new Cell(new Phrase("     ", contentFont));
                    nzfrCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    nzfrCell.setColspan(2);
                    remarktable.addCell(nzfrCell);
                }
            } else if ("FGS".equals(opetype) || "NZYY".equals(opetype) || "WZFZ".equals(opetype)
                    || "WZHHFZ".equals(opetype) || "WGJY".equals(opetype) || "WGDB".equals(opetype)
                    || "HZSFZ".equals(opetype)) {
                Cell fgsCell = new Cell(new Phrase("/", tblTitleFont));
                fgsCell.setColspan(6);
                fgsCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                remarktable.addCell(fgsCell);

                fgsCell = new Cell(new Phrase("/", contentFont));
                fgsCell.setColspan(2);
                fgsCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                remarktable.addCell(fgsCell);

                fgsCell = new Cell(new Phrase("/", contentFont));
                fgsCell.setColspan(2);
                fgsCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                remarktable.addCell(fgsCell);

                fgsCell = new Cell(new Phrase("/", contentFont));
                fgsCell.setColspan(2);
                fgsCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                remarktable.addCell(fgsCell);

                for (int i = 0; i < 3; i++) {
                    fgsCell = new Cell("");
                    fgsCell.setColspan(2);
                    remarktable.addCell(fgsCell);

                    fgsCell = new Cell(" ");
                    fgsCell.setColspan(2);
                    remarktable.addCell(fgsCell);

                    fgsCell = new Cell(" ");
                    fgsCell.setColspan(2);
                    remarktable.addCell(fgsCell);
                }

                if ("FGS".equals(opetype) || "HZSFZ".equals(opetype)) {
                    fgsCell = new Cell(new Phrase(" ", tblTitleFont));
                    fgsCell.setColspan(6);
                    fgsCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(fgsCell);
                    fgsCell = new Cell(new Phrase("", contentFont));
                    fgsCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(fgsCell);
                    fgsCell = new Cell(new Phrase(
                            "  1;      2;\n  3;  4",
                            contentFont));
                    fgsCell.setHorizontalAlignment(Element.ALIGN_LEFT);
                    fgsCell.setColspan(5);
                    remarktable.addCell(fgsCell);

                    fgsCell = new Cell(new Phrase("", contentFont));
                    fgsCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(fgsCell);
                    fgsCell = new Cell(new Phrase("       ", contentFont));
                    fgsCell.setHorizontalAlignment(Element.ALIGN_LEFT);
                    fgsCell.setColspan(5);
                    remarktable.addCell(fgsCell);
                } else if ("NZYY".equals(opetype)) {
                    fgsCell = new Cell(new Phrase(" ", tblTitleFont));
                    fgsCell.setColspan(6);
                    fgsCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(fgsCell);
                    fgsCell = new Cell(new Phrase("", contentFont));
                    fgsCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(fgsCell);
                    fgsCell = new Cell(new Phrase(
                            "  1;     2;\n  3 3; 4",
                            contentFont));
                    fgsCell.setHorizontalAlignment(Element.ALIGN_LEFT);
                    fgsCell.setColspan(5);
                    remarktable.addCell(fgsCell);

                    fgsCell = new Cell(new Phrase("", contentFont));
                    fgsCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(fgsCell);
                    fgsCell = new Cell(
                            new Phrase("   ", contentFont));
                    fgsCell.setHorizontalAlignment(Element.ALIGN_LEFT);
                    fgsCell.setColspan(5);
                    remarktable.addCell(fgsCell);
                    fgsCell = new Cell(new Phrase("", contentFont));
                    fgsCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(fgsCell);
                    fgsCell = new Cell(new Phrase("       ", contentFont));
                    fgsCell.setHorizontalAlignment(Element.ALIGN_LEFT);
                    fgsCell.setColspan(5);
                    remarktable.addCell(fgsCell);

                    fgsCell = new Cell(new Phrase("", contentFont));
                    fgsCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(fgsCell);
                    fgsCell = new Cell(new Phrase("            ", contentFont));
                    fgsCell.setHorizontalAlignment(Element.ALIGN_LEFT);
                    fgsCell.setColspan(5);
                    remarktable.addCell(fgsCell);
                }
            }

            if ("HHFZ".equals(opetype) || "GRDZ".equals(opetype) || "GRDZFZ".equals(opetype)
                    || "WZFZ".equals(opetype) || "WZHHFZ".equals(opetype)) {
                Cell cell = null;
                cell = new Cell(new Phrase(" ", tblTitleFont));
                cell.setColspan(6);
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                remarktable.addCell(cell);

                cell = new Cell(new Phrase(" ", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                remarktable.addCell(cell);
                if ("HHFZ".equals(opetype) || "GRDZFZ".equals(opetype) || "WZFZ".equals(opetype)
                        || "WZHHFZ".equals(opetype)) {
                    cell = new Cell(new Phrase(
                            " 1.       2.\n 3.       4. ",
                            contentFont));
                } else if ("GRDZ".equals(opetype)) {
                    cell = new Cell(new Phrase(
                            " \n \n \n __________________ ",
                            contentFont));
                }
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(5);
                remarktable.addCell(cell);
                if ("GRDZ".equals(opetype)) {
                    cell = new Cell(new Phrase(" ", contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    remarktable.addCell(cell);
                    cell = new Cell(new Phrase(" ", contentFont));
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    cell.setColspan(5);
                    remarktable.addCell(cell);
                }
                cell = new Cell(new Phrase(" ", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                remarktable.addCell(cell);
                cell = new Cell(new Phrase("      ", contentFont));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                cell.setColspan(5);
                remarktable.addCell(cell);
            }

            //
            Cell sqrTitle = new Cell(new Phrase("", tblTitleFont));
            sqrTitle.setColspan(6);
            sqrTitle.setHorizontalAlignment(Element.ALIGN_CENTER);
            remarktable.addCell(sqrTitle);

            String sqrtext = "";
            if ("GS".equals(opetype) || "WZGS".equals(opetype)) {
                sqrtext = "\n       \n";
            } else if ("FGS".equals(opetype)) {
                sqrtext = "\n      \n";
            } else if ("NZFR".equals(opetype)) {
                sqrtext = "\n      \n";
            } else if ("NZYY".equals(opetype)) {
                sqrtext = "\n       \n";
            } else if ("HHQY".equals(opetype) || "WZHH".equals(opetype)) {
                sqrtext = "\n      \n";
            } else if ("HHFZ".equals(opetype) || "GRDZFZ".equals(opetype) || "WZFZ".equals(opetype)
                    || "WZHHFZ".equals(opetype)) {
                sqrtext = "\n      \n";
            } else if ("GRDZ".equals(opetype)) {
                sqrtext = "\n      \n";
            } else if ("WGJY".equals(opetype)) {
                sqrtext = "\n      \n";
            } else if ("WGDB".equals(opetype)) {
                sqrtext = "\n       \n";
            } else if ("HZS".equals(opetype) || "HZSFZ".equals(opetype)) {
                sqrtext = "\n      \n";
            }
            Paragraph sqrp = new Paragraph(sqrtext, contentFont);
            String fdbdrname = "";
            if ("HHQY".equals(opetype) || "WZHH".equals(opetype)) {
                fdbdrname = "";
            } else if ("HHFZ".equals(opetype) || "GRDZFZ".equals(opetype) || "WZFZ".equals(opetype)
                    || "WZHHFZ".equals(opetype)) {
                fdbdrname = "\n  \n  ";
            } else if ("GRDZ".equals(opetype)) {
                fdbdrname = "";
            } else if ("WGJY".equals(opetype) || "WGDB".equals(opetype)) {
                fdbdrname = ":";
            }
            Paragraph fdbdr = new Paragraph("      " + fdbdrname
                    + "                                                                                                        ",
                    contentFont);
            fdbdr.setFirstLineIndent(40);
            Paragraph fzrqz = new Paragraph(
                    "    " + (("GS".equals(opetype)
                            || "HHQY".equals(opetype) || "WZHH".equals(opetype) || "GRDZ".equals(opetype)
                            || "WZGS".equals(opetype) || "HZS".equals(opetype))
                                    ? ""
                                    : "")
                            + "                                                                                                                                              ",
                    contentFont);
            fzrqz.setFirstLineIndent(40);
            Cell allCell = new Cell();
            allCell.add(sqrp);
            allCell.add(fdbdr);
            allCell.add(fzrqz);
            allCell.setColspan(6);
            remarktable.addCell(allCell);

            document.add(remarktable);

            //
            if ("GRDZ".equals(opetype)) {
                Paragraph lerepTitle = new Paragraph("\n", titleChinese);
                lerepTitle.setAlignment(Paragraph.ALIGN_CENTER);
                document.add(lerepTitle);

                //TABLE
                Table lereptable = new Table(4);
                int lerepwidths[] = { 20, 30, 20, 30 };
                lereptable.setWidths(lerepwidths);
                lereptable.setWidth(100);
                lereptable.setPadding(3);
                lereptable.setBorderWidth(1);
                lereptable.setAlignment(Cell.ALIGN_CENTER);

                Map<String, String> lerepMap = (Map<String, String>) dataMap.get("lerepMap");
                Cell lerep1 = new Cell(new Phrase(" ", contentFont));
                lerep1.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep1);
                Cell lerep2 = new Cell(new Phrase(lerepMap == null ? "" : lerepMap.get("name"), contentFont));
                lerep2.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep2);
                Cell lerep3 = new Cell(new Phrase(" ", contentFont));
                lerep3.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep3);
                Cell lerep4 = new Cell(new Phrase(lerepMap == null ? "" : lerepMap.get("sex"), contentFont));
                lerep4.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep4);

                Cell lerep5 = new Cell(new Phrase("", contentFont));
                lerep5.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep5);
                Cell lerep6 = new Cell(
                        new Phrase(lerepMap == null ? "" : lerepMap.get("natdate"), contentFont));
                lerep6.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep6);
                Cell lerep7 = new Cell(new Phrase(" ", contentFont));
                lerep7.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep7);
                Cell lerep8 = new Cell(new Phrase(lerepMap == null ? "" : lerepMap.get("nation"), contentFont));
                lerep8.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep8);

                Cell lerep9 = new Cell(new Phrase("", contentFont));
                lerep9.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep9);
                Cell lerep10 = new Cell(
                        new Phrase(lerepMap == null ? "" : lerepMap.get("litedeg"), contentFont));
                lerep10.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep10);
                Cell lerep11 = new Cell(new Phrase("", contentFont));
                lerep11.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep11);
                Cell lerep12 = new Cell(
                        new Phrase(lerepMap == null ? "" : lerepMap.get("polstand"), contentFont));
                lerep12.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep12);

                Cell lerep13 = new Cell(new Phrase("", contentFont));
                lerep13.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep13);
                Cell lerep14 = new Cell(
                        new Phrase(lerepMap == null ? "" : lerepMap.get("mobile"), contentFont));
                lerep14.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep14);
                Cell lerep15 = new Cell(new Phrase("", contentFont));
                lerep15.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep15);
                Cell lerep16 = new Cell(new Phrase(lerepMap == null ? "" : lerepMap.get("email"), contentFont));
                lerep16.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep16);

                Cell lerep17 = new Cell(new Phrase("", contentFont));
                lerep17.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep17);
                Cell lerep18 = new Cell(
                        new Phrase(lerepMap == null ? "" : lerepMap.get("certype"), contentFont));
                lerep18.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep18);
                Cell lerep19 = new Cell(new Phrase("", contentFont));
                lerep19.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep19);
                Cell lerep20 = new Cell(new Phrase(lerepMap == null ? "" : lerepMap.get("cerno"), contentFont));
                lerep20.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep20);

                Cell lerep21 = new Cell(new Phrase(" ", contentFont));
                lerep21.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep21);
                Cell lerep22 = new Cell(
                        new Phrase(lerepMap == null ? "" : lerepMap.get("houseadd"), contentFont));
                lerep22.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep22);
                Cell lerep23 = new Cell(new Phrase("", contentFont));
                lerep23.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep23);
                Cell lerep24 = new Cell(
                        new Phrase(lerepMap == null ? "" : lerepMap.get("postalcode"), contentFont));
                lerep24.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep24);

                Cell lerep25 = new Cell(new Phrase("", contentFont));
                lerep25.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep25);
                Cell lerep26 = new Cell(
                        new Phrase(lerepMap == null ? "" : lerepMap.get("occstbeapp"), contentFont));
                lerep26.setHorizontalAlignment(Element.ALIGN_CENTER);
                lerep26.setColspan(3);
                lereptable.addCell(lerep26);

                document.add(lereptable);
            } else if ("WGDB".equals(opetype)) {
                Paragraph lerepTitle1 = new Paragraph("\n", titleChinese);
                lerepTitle1.setAlignment(Paragraph.ALIGN_CENTER);
                document.add(lerepTitle1);
                Paragraph lerepTitle2 = new Paragraph("/", titleChinese);
                lerepTitle2.setAlignment(Paragraph.ALIGN_CENTER);
                document.add(lerepTitle2);

                //TABLE
                Table lereptable = new Table(4);
                int lerepwidths[] = { 20, 30, 20, 30 };
                lereptable.setWidths(lerepwidths);
                lereptable.setWidth(100);
                lereptable.setPadding(3);
                lereptable.setBorderWidth(1);
                lereptable.setAlignment(Cell.ALIGN_CENTER);

                Map<String, String> lerepMap = (Map<String, String>) dataMap.get("lerepMap");
                Cell lerep1 = new Cell(new Phrase("", contentFont));
                lerep1.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep1);
                Cell lerep2 = new Cell(
                        new Phrase(lerepMap == null ? "" : lerepMap.get("entname"), contentFont));
                lerep2.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep2);
                Cell lerep3 = new Cell(new Phrase("", contentFont));
                lerep3.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep3);
                Cell lerep4 = new Cell(new Phrase(lerepMap == null ? "" : lerepMap.get("name"), contentFont));
                lerep4.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep4);

                Cell lerep5 = new Cell(new Phrase("", contentFont));
                lerep5.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep5);
                Cell lerep6 = new Cell(
                        new Phrase(lerepMap == null ? "" : lerepMap.get("position"), contentFont));
                lerep6.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep6);
                Cell lerep7 = new Cell(new Phrase("", contentFont));
                lerep7.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep7);
                Cell lerep8 = new Cell(
                        new Phrase(lerepMap == null ? "" : lerepMap.get("country"), contentFont));
                lerep8.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep8);

                Cell lerep9 = new Cell(new Phrase("", contentFont));
                lerep9.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep9);
                Cell lerep10 = new Cell(
                        new Phrase(lerepMap == null ? "" : lerepMap.get("arrchdate"), contentFont));
                lerep10.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep10);
                Cell lerep11 = new Cell(new Phrase("", contentFont));
                lerep11.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep11);
                Cell lerep12 = new Cell(new Phrase(lerepMap == null ? "" : lerepMap.get("tel"), contentFont));
                lerep12.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep12);

                Cell lerep13 = new Cell(new Phrase("", contentFont));
                lerep13.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep13);
                Cell lerep14 = new Cell(
                        new Phrase(lerepMap == null ? "" : lerepMap.get("certype"), contentFont));
                lerep14.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep14);
                Cell lerep15 = new Cell(new Phrase("", contentFont));
                lerep15.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep15);
                Cell lerep16 = new Cell(new Phrase(lerepMap == null ? "" : lerepMap.get("cerno"), contentFont));
                lerep16.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep16);

                Cell lerep17 = new Cell(new Phrase("", contentFont));
                lerep17.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep17);
                Cell lerep18 = new Cell(
                        new Phrase(lerepMap == null ? "" : lerepMap.get("houaddinchina"), contentFont));
                lerep18.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep18);
                Cell lerep19 = new Cell(new Phrase("", contentFont));
                lerep19.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep19);
                Cell lerep20 = new Cell(
                        new Phrase(lerepMap == null ? "" : lerepMap.get("repdate"), contentFont));
                lerep20.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep20);

                Paragraph rep1 = new Paragraph("",
                        contentFont);
                rep1.setAlignment(Paragraph.ALIGN_LEFT);
                Paragraph rep2 = new Paragraph("1",
                        contentFont);
                rep2.setAlignment(Paragraph.ALIGN_LEFT);
                Paragraph rep3 = new Paragraph(
                        "25",
                        contentFont);
                rep3.setAlignment(Paragraph.ALIGN_LEFT);
                Paragraph rep4 = new Paragraph("3", contentFont);
                rep4.setAlignment(Paragraph.ALIGN_LEFT);
                Paragraph rep5 = new Paragraph("/", contentFont);
                rep5.setAlignment(Paragraph.ALIGN_LEFT);
                rep5.setIndentationLeft(200);

                Cell lerep21 = new Cell();
                lerep21.add(rep1);
                lerep21.add(rep2);
                lerep21.add(rep3);
                lerep21.add(rep4);
                lerep21.add(rep5);
                lerep21.setColspan(4);
                lereptable.addCell(lerep21);

                document.add(lereptable);
            } else {
                Paragraph lerepTitle = null;
                if ("GS".equals(opetype) || "NZFR".equals(opetype) || "WZGS".equals(opetype)
                        || "HZS".equals(opetype)) {
                    lerepTitle = new Paragraph("\n", titleChinese);
                } else if ("FGS".equals(opetype) || "NZYY".equals(opetype) || "HHFZ".equals(opetype)
                        || "GRDZFZ".equals(opetype) || "WZFZ".equals(opetype) || "WZHHFZ".equals(opetype)
                        || "WGJY".equals(opetype) || "HZSFZ".equals(opetype)) {
                    lerepTitle = new Paragraph("\n", titleChinese);
                } else if ("HHQY".equals(opetype) || "WZHH".equals(opetype)) {
                    lerepTitle = new Paragraph("\n", titleChinese);
                }
                lerepTitle.setAlignment(Paragraph.ALIGN_CENTER);
                document.add(lerepTitle);

                //TABLE
                Table lereptable = new Table(4);
                int lerepwidths[] = { 20, 30, 20, 30 };
                lereptable.setWidths(lerepwidths);
                lereptable.setWidth(100);
                lereptable.setPadding(3);
                lereptable.setBorderWidth(1);
                lereptable.setAlignment(Cell.ALIGN_CENTER);

                Map<String, String> lerepMap = (Map<String, String>) dataMap.get("lerepMap");
                Cell lerep1 = new Cell(new Phrase(" ", contentFont));
                lerep1.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep1);
                Cell lerep2 = new Cell(new Phrase(lerepMap == null ? "" : lerepMap.get("name"), contentFont));
                lerep2.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep2);
                Cell lerep3 = new Cell(new Phrase("", contentFont));
                lerep3.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep3);
                Cell lerep4 = new Cell(new Phrase(lerepMap == null ? "" : lerepMap.get("tel"), contentFont));
                lerep4.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep4);

                Cell lerep5 = new Cell(new Phrase("", contentFont));
                lerep5.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep5);
                Cell lerep6 = new Cell(new Phrase(lerepMap == null ? "" : lerepMap.get("mobile"), contentFont));
                lerep6.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep6);
                Cell lerep7 = new Cell(new Phrase("", contentFont));
                lerep7.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep7);
                Cell lerep8 = new Cell(new Phrase(lerepMap == null ? "" : lerepMap.get("email"), contentFont));
                lerep8.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep8);

                Cell lerep9 = new Cell(new Phrase("", contentFont));
                lerep9.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep9);
                Cell lerep10 = new Cell(
                        new Phrase(lerepMap == null ? "" : lerepMap.get("certype"), contentFont));
                lerep10.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep10);
                Cell lerep11 = new Cell(new Phrase("", contentFont));
                lerep11.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep11);
                Cell lerep12 = new Cell(new Phrase(lerepMap == null ? "" : lerepMap.get("cerno"), contentFont));
                lerep12.setHorizontalAlignment(Element.ALIGN_CENTER);
                lereptable.addCell(lerep12);
                if ("HHFZ".equals(opetype) || "GRDZFZ".equals(opetype)) {
                    Cell lerep13 = new Cell(new Phrase("", contentFont));
                    lerep13.setHorizontalAlignment(Element.ALIGN_CENTER);
                    lereptable.addCell(lerep13);
                    Cell lerep14 = new Cell(
                            new Phrase(lerepMap == null ? "" : lerepMap.get("occstbeapp"), contentFont));
                    lerep14.setHorizontalAlignment(Element.ALIGN_CENTER);
                    lerep14.setColspan(3);
                    lereptable.addCell(lerep14);
                } else if ("WZFZ".equals(opetype) || "WZHH".equals(opetype) || "WZHHFZ".equals(opetype)
                        || "WGJY".equals(opetype)) {
                    Cell lerep13 = new Cell(new Phrase("", contentFont));
                    lerep13.setHorizontalAlignment(Element.ALIGN_CENTER);
                    lereptable.addCell(lerep13);
                    Cell lerep14 = new Cell(
                            new Phrase(lerepMap == null ? "" : lerepMap.get("country"), contentFont));
                    lerep14.setHorizontalAlignment(Element.ALIGN_CENTER);
                    lerep14.setColspan(3);
                    lereptable.addCell(lerep14);
                }

                document.add(lereptable);
            }

            if ("HZS".equals(opetype)) {
                Paragraph hzsp = new Paragraph(
                        "\n  ",
                        contentFont);
                document.add(hzsp);
                Paragraph hzsp1 = new Paragraph("\n", contentFont);
                hzsp1.setIndentationLeft(200);
                document.add(hzsp1);
                Paragraph hzsp2 = new Paragraph("\n                                                 ",
                        contentFont);
                hzsp2.setAlignment(Paragraph.ALIGN_RIGHT);
                document.add(hzsp2);
            }

            if ("GS".equals(opetype) || "WZGS".equals(opetype)) {
                //()
                Paragraph ryxxTitle = new Paragraph("\n", titleChinese);
                ryxxTitle.setAlignment(Paragraph.ALIGN_CENTER);
                document.add(ryxxTitle);

                //TABLE
                Table ryxxtable = new Table(1);
                int ryxxwidths[] = { 100 };
                ryxxtable.setWidths(ryxxwidths);
                ryxxtable.setWidth(100);
                ryxxtable.setPadding(3);
                ryxxtable.setBorderWidth(1);
                ryxxtable.setAlignment(Cell.ALIGN_CENTER);
                List<Map<String, String>> ryxxList = (List<Map<String, String>>) dataMap.get("ryxxList");
                if (ryxxList != null && !ryxxList.isEmpty()) {
                    for (int i = 0; i < ryxxList.size(); i++) {
                        Map<String, String> ryxxs = ryxxList.get(i);
                        Paragraph p = new Paragraph();
                        if ("GS".equals(opetype)) {
                            Phrase p1 = new Phrase(
                                    "" + (ryxxs == null ? "" : ryxxs.get("name")) + "     ", contentFont);
                            p.add(p1);
                            Phrase p2 = new Phrase(
                                    "" + (ryxxs == null ? "" : ryxxs.get("position")) + "     ",
                                    contentFont);
                            p.add(p2);
                            Phrase p3 = new Phrase(
                                    "" + (ryxxs == null ? "" : ryxxs.get("certype")) + "     ",
                                    contentFont);
                            p.add(p3);
                            Phrase p4 = new Phrase(
                                    "" + (ryxxs == null ? "" : ryxxs.get("cerno")) + "     ",
                                    contentFont);
                            p.add(p4);
                        } else if ("WZGS".equals(opetype)) {
                            Phrase p1 = new Phrase(
                                    "" + (ryxxs == null ? "" : ryxxs.get("name")) + "     ", contentFont);
                            p.add(p1);
                            Phrase p2 = new Phrase(
                                    "" + (ryxxs == null ? "" : ryxxs.get("country")) + "     ",
                                    contentFont);
                            p.add(p2);
                            Phrase p3 = new Phrase(
                                    "" + (ryxxs == null ? "" : ryxxs.get("certype")) + "     ",
                                    contentFont);
                            p.add(p3);
                            Phrase p4 = new Phrase(
                                    "" + (ryxxs == null ? "" : ryxxs.get("cerno")) + "     ",
                                    contentFont);
                            p.add(p4);
                            Phrase p5 = new Phrase(
                                    "" + (ryxxs == null ? "" : ryxxs.get("position")) + "     ",
                                    contentFont);
                            p.add(p5);
                            Phrase p6 = new Phrase(
                                    "" + (ryxxs == null ? "" : ryxxs.get("posbrform")) + "     ",
                                    contentFont);
                            p.add(p6);
                        }
                        Cell cell = new Cell(p);
                        ryxxtable.addCell(cell);
                    }
                }
                document.add(ryxxtable);
            }

            if ("GS".equals(opetype)) {
                //()
                Paragraph czxxTitle = new Paragraph("\n()", titleChinese);
                czxxTitle.setAlignment(Paragraph.ALIGN_CENTER);
                document.add(czxxTitle);

                //TABLE
                Table czxxtable = new Table(7);
                int czxxwidths[] = { 20, 20, 15, 10, 10, 15, 10 };
                czxxtable.setWidths(czxxwidths);
                czxxtable.setWidth(100);
                czxxtable.setPadding(3);
                czxxtable.setBorderWidth(1);
                czxxtable.setAlignment(Cell.ALIGN_CENTER);

                List<List<String>> czxxList = (List<List<String>>) dataMap.get("czxxList");
                if (czxxList != null && !czxxList.isEmpty()) {
                    Cell ct1 = new Cell(new Phrase("\n", contentFont));
                    ct1.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct1);
                    Cell ct2 = new Cell(new Phrase("", contentFont));
                    ct2.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct2);
                    Cell ct3 = new Cell(new Phrase("", contentFont));
                    ct3.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct3);
                    Cell ct4 = new Cell(new Phrase("", contentFont));
                    ct4.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct4);
                    Cell ct5 = new Cell(new Phrase("", contentFont));
                    ct5.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct5);
                    Cell ct6 = new Cell(new Phrase("\n", contentFont));
                    ct6.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct6);
                    Cell ct7 = new Cell(new Phrase("", contentFont));
                    ct7.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct7);
                    for (int i = 0; i < czxxList.size(); i++) {
                        List<String> czxxs = czxxList.get(i);
                        if (!czxxs.isEmpty()) {
                            for (int j = 0; j < czxxs.size(); j++) {
                                Cell czCell = new Cell(new Phrase(czxxs.get(j), contentFont));
                                czCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                                czxxtable.addCell(czCell);
                            }
                        }
                    }
                }
                document.add(czxxtable);
            } else if ("WZGS".equals(opetype) || "WZHH".equals(opetype)) {
                //()
                Paragraph czxxTitle = new Paragraph("\n/", titleChinese);
                czxxTitle.setAlignment(Paragraph.ALIGN_CENTER);
                document.add(czxxTitle);

                //TABLE
                int length = 0;
                int[] czxxwidths = null;
                if ("WZGS".equals(opetype)) {
                    length = 8;
                    czxxwidths = new int[] { 20, 10, 15, 10, 10, 15, 10, 10 };
                } else if ("WZHH".equals(opetype)) {
                    length = 9;
                    czxxwidths = new int[] { 12, 11, 11, 11, 11, 11, 11, 11, 11 };
                }
                Table czxxtable = new Table(length);
                czxxtable.setWidths(czxxwidths);
                czxxtable.setWidth(100);
                czxxtable.setPadding(3);
                czxxtable.setBorderWidth(1);
                czxxtable.setAlignment(Cell.ALIGN_CENTER);

                List<List<String>> czxxList = (List<List<String>>) dataMap.get("czxxList");
                if (czxxList != null && !czxxList.isEmpty()) {
                    String ct1text = "";
                    if ("WZGS".equals(opetype)) {
                        ct1text = "\n";
                    } else if ("WZHH".equals(opetype)) {
                        ct1text = "\n";
                    }
                    Cell ct1 = new Cell(new Phrase(ct1text, contentFont));
                    ct1.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct1);
                    Cell ct11 = new Cell(new Phrase("", contentFont));
                    ct11.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct11);
                    Cell ct2 = new Cell(new Phrase("", contentFont));
                    ct2.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct2);
                    Cell ct3 = new Cell(new Phrase("", contentFont));
                    ct3.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct3);
                    Cell ct31 = new Cell(new Phrase("", contentFont));
                    ct31.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct31);
                    Cell ct4 = new Cell(new Phrase("", contentFont));
                    ct4.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct4);
                    Cell ct5 = new Cell(new Phrase("", contentFont));
                    ct5.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct5);
                    Cell ct6 = new Cell(new Phrase("\n", contentFont));
                    ct6.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct6);
                    Cell ct7 = new Cell(new Phrase("", contentFont));
                    ct7.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct7);
                    for (int i = 0; i < czxxList.size(); i++) {
                        List<String> czxxs = czxxList.get(i);
                        if (!czxxs.isEmpty()) {
                            for (int j = 0; j < czxxs.size(); j++) {
                                Cell czCell = new Cell(new Phrase(czxxs.get(j), contentFont));
                                czCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                                czxxtable.addCell(czCell);
                            }
                        }
                    }
                }
                document.add(czxxtable);
            } else if ("HHQY".equals(opetype)) {
                //
                Paragraph czxxTitle = new Paragraph("\n", titleChinese);
                czxxTitle.setAlignment(Paragraph.ALIGN_CENTER);
                document.add(czxxTitle);

                //TABLE
                Table czxxtable = new Table(9);
                int czxxwidths[] = { 12, 11, 11, 11, 11, 11, 11, 11, 11 };
                czxxtable.setWidths(czxxwidths);
                czxxtable.setWidth(100);
                czxxtable.setPadding(3);
                czxxtable.setBorderWidth(1);
                czxxtable.setAlignment(Cell.ALIGN_CENTER);

                List<List<String>> czxxList = (List<List<String>>) dataMap.get("czxxList");
                if (czxxList != null && !czxxList.isEmpty()) {
                    Cell ct1 = new Cell(new Phrase("", contentFont));
                    ct1.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct1);
                    Cell ct2 = new Cell(new Phrase("", contentFont));
                    ct2.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct2);
                    Cell ct3 = new Cell(new Phrase("", contentFont));
                    ct3.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct3);
                    Cell ct4 = new Cell(new Phrase("", contentFont));
                    ct4.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct4);
                    Cell ct5 = new Cell(new Phrase("", contentFont));
                    ct5.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct5);
                    Cell ct6 = new Cell(new Phrase("", contentFont));
                    ct6.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct6);
                    Cell ct7 = new Cell(new Phrase("", contentFont));
                    ct7.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct7);
                    Cell ct8 = new Cell(new Phrase("", contentFont));
                    ct8.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct8);
                    Cell ct9 = new Cell(new Phrase("", contentFont));
                    ct9.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct9);
                    for (int i = 0; i < czxxList.size(); i++) {
                        List<String> czxxs = czxxList.get(i);
                        if (!czxxs.isEmpty()) {
                            for (int j = 0; j < czxxs.size(); j++) {
                                Cell czCell = new Cell(new Phrase(czxxs.get(j), contentFont));
                                czCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                                czxxtable.addCell(czCell);
                            }
                        }
                    }
                }
                document.add(czxxtable);
            } else if ("HZS".equals(opetype)) {
                //
                Paragraph czxxTitle = new Paragraph("\n", titleChinese);
                czxxTitle.setAlignment(Paragraph.ALIGN_CENTER);
                document.add(czxxTitle);

                //TABLE
                Table czxxtable = new Table(5);
                int czxxwidths[] = { 10, 30, 20, 20, 20 };
                czxxtable.setWidths(czxxwidths);
                czxxtable.setWidth(100);
                czxxtable.setPadding(3);
                czxxtable.setBorderWidth(1);
                czxxtable.setAlignment(Cell.ALIGN_CENTER);

                List<List<String>> czxxList = (List<List<String>>) dataMap.get("czxxList");
                if (czxxList != null && !czxxList.isEmpty()) {
                    Cell ct1 = new Cell(new Phrase("", contentFont));
                    ct1.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct1);
                    Cell ct2 = new Cell(new Phrase("", contentFont));
                    ct2.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct2);
                    Cell ct3 = new Cell(new Phrase("", contentFont));
                    ct3.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct3);
                    Cell ct4 = new Cell(new Phrase("", contentFont));
                    ct4.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct4);
                    Cell ct5 = new Cell(new Phrase("", contentFont));
                    ct5.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct5);
                    for (int i = 0; i < czxxList.size(); i++) {
                        List<String> czxxs = czxxList.get(i);
                        if (!czxxs.isEmpty()) {
                            for (int j = 0; j < czxxs.size(); j++) {
                                Cell czCell = new Cell(new Phrase(czxxs.get(j), contentFont));
                                czCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                                czxxtable.addCell(czCell);
                            }
                        }
                    }
                }
                document.add(czxxtable);

                Paragraph czzep = new Paragraph("\n:    " + dataMap.get("regcap") + "   ()  ",
                        contentFont);
                czzep.setAlignment(Paragraph.ALIGN_LEFT);
                czzep.setIndentationLeft(100);
                document.add(czzep);
                Paragraph czzep1 = new Paragraph("\n  ", contentFont);
                czzep1.setAlignment(Paragraph.ALIGN_LEFT);
                czzep1.setIndentationLeft(100);
                document.add(czzep1);
                Paragraph czzep2 = new Paragraph(
                        "\n                                                        ", contentFont);
                czzep2.setAlignment(Paragraph.ALIGN_RIGHT);
                document.add(czzep2);
            }

            if ("HZS".equals(opetype)) {
                //
                Paragraph czxxTitle = new Paragraph("\n", titleChinese);
                czxxTitle.setAlignment(Paragraph.ALIGN_CENTER);
                document.add(czxxTitle);

                //TABLE
                Table czxxtable = new Table(5);
                int czxxwidths[] = { 10, 20, 30, 25, 15 };
                czxxtable.setWidths(czxxwidths);
                czxxtable.setWidth(100);
                czxxtable.setPadding(3);
                czxxtable.setBorderWidth(1);
                czxxtable.setAlignment(Cell.ALIGN_CENTER);

                List<List<String>> czxxList = (List<List<String>>) dataMap.get("hzsList");
                if (czxxList != null && !czxxList.isEmpty()) {
                    Cell ct1 = new Cell(new Phrase("", contentFont));
                    ct1.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct1);
                    Cell ct2 = new Cell(new Phrase("", contentFont));
                    ct2.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct2);
                    Cell ct3 = new Cell(new Phrase("", contentFont));
                    ct3.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct3);
                    Cell ct4 = new Cell(new Phrase("", contentFont));
                    ct4.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct4);
                    Cell ct5 = new Cell(new Phrase("", contentFont));
                    ct5.setHorizontalAlignment(Element.ALIGN_CENTER);
                    czxxtable.addCell(ct5);
                    for (int i = 0; i < czxxList.size(); i++) {
                        List<String> czxxs = czxxList.get(i);
                        if (!czxxs.isEmpty()) {
                            for (int j = 0; j < czxxs.size(); j++) {
                                Cell czCell = new Cell(new Phrase(czxxs.get(j), contentFont));
                                czCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                                czxxtable.addCell(czCell);
                            }
                        }
                    }
                }
                document.add(czxxtable);

                Paragraph czzep = new Paragraph("\n:    " + dataMap.get("cyzs") + "   ()    ",
                        contentFont);
                czzep.setAlignment(Paragraph.ALIGN_LEFT);
                czzep.setIndentationLeft(40);
                document.add(czzep);
                Paragraph czzep1 = new Paragraph(" " + dataMap.get("nmcy") + "   ()  "
                        + dataMap.get("nmcyrate") + "    % ", contentFont);
                czzep1.setAlignment(Paragraph.ALIGN_LEFT);
                czzep1.setIndentationLeft(100);
                document.add(czzep1);
                Paragraph czzep2 = new Paragraph("   " + dataMap.get("frcy")
                        + "   () " + dataMap.get("frcyrate") + "  %", contentFont);
                czzep2.setAlignment(Paragraph.ALIGN_LEFT);
                czzep2.setIndentationLeft(100);
                document.add(czzep2);

                Paragraph czzep3 = new Paragraph(
                        " ",
                        contentFont);
                czzep3.setAlignment(Paragraph.ALIGN_LEFT);
                czzep3.setIndentationLeft(40);
                document.add(czzep3);

                Paragraph czzep4 = new Paragraph("\n ", contentFont);
                czzep4.setAlignment(Paragraph.ALIGN_LEFT);
                czzep4.setIndentationLeft(100);
                document.add(czzep4);

                Paragraph czzep5 = new Paragraph(
                        "\n                                                                 ",
                        contentFont);
                czzep4.setAlignment(Paragraph.ALIGN_RIGHT);
                document.add(czzep4);
            }

            //()
            Paragraph cwfzrTitle = new Paragraph("\n", titleChinese);
            cwfzrTitle.setAlignment(Paragraph.ALIGN_CENTER);
            document.add(cwfzrTitle);

            //TABLE
            Table cwfzrtable = new Table(4);
            int cwfzrwidths[] = { 20, 30, 20, 30 };
            cwfzrtable.setWidths(cwfzrwidths);
            cwfzrtable.setWidth(100);
            cwfzrtable.setPadding(3);
            cwfzrtable.setBorderWidth(1);
            cwfzrtable.setAlignment(Cell.ALIGN_CENTER);

            Map<String, String> cwfzrMap = (Map<String, String>) dataMap.get("cwfzrMap");
            Cell cwfzr1 = new Cell(new Phrase(" ", contentFont));
            cwfzr1.setHorizontalAlignment(Element.ALIGN_CENTER);
            cwfzrtable.addCell(cwfzr1);
            Cell cwfzr2 = new Cell(new Phrase(cwfzrMap == null ? "" : cwfzrMap.get("name"), contentFont));
            cwfzr2.setHorizontalAlignment(Element.ALIGN_CENTER);
            cwfzrtable.addCell(cwfzr2);
            Cell cwfzr3 = new Cell(new Phrase("", contentFont));
            cwfzr3.setHorizontalAlignment(Element.ALIGN_CENTER);
            cwfzrtable.addCell(cwfzr3);
            Cell cwfzr4 = new Cell(new Phrase(cwfzrMap == null ? "" : cwfzrMap.get("tel"), contentFont));
            cwfzr4.setHorizontalAlignment(Element.ALIGN_CENTER);
            cwfzrtable.addCell(cwfzr4);

            Cell cwfzr5 = new Cell(new Phrase("", contentFont));
            cwfzr5.setHorizontalAlignment(Element.ALIGN_CENTER);
            cwfzrtable.addCell(cwfzr5);
            Cell cwfzr6 = new Cell(new Phrase(cwfzrMap == null ? "" : cwfzrMap.get("mobile"), contentFont));
            cwfzr6.setHorizontalAlignment(Element.ALIGN_CENTER);
            cwfzrtable.addCell(cwfzr6);
            Cell cwfzr7 = new Cell(new Phrase("", contentFont));
            cwfzr7.setHorizontalAlignment(Element.ALIGN_CENTER);
            cwfzrtable.addCell(cwfzr7);
            Cell cwfzr8 = new Cell(new Phrase(cwfzrMap == null ? "" : cwfzrMap.get("email"), contentFont));
            cwfzr8.setHorizontalAlignment(Element.ALIGN_CENTER);
            cwfzrtable.addCell(cwfzr8);

            Cell cwfzr9 = new Cell(new Phrase("", contentFont));
            cwfzr9.setHorizontalAlignment(Element.ALIGN_CENTER);
            cwfzrtable.addCell(cwfzr9);
            Cell cwfzr10 = new Cell(new Phrase(cwfzrMap == null ? "" : cwfzrMap.get("certype"), contentFont));
            cwfzr10.setHorizontalAlignment(Element.ALIGN_CENTER);
            cwfzrtable.addCell(cwfzr10);
            Cell cwfzr11 = new Cell(new Phrase("", contentFont));
            cwfzr11.setHorizontalAlignment(Element.ALIGN_CENTER);
            cwfzrtable.addCell(cwfzr11);
            Cell cwfzr12 = new Cell(new Phrase(cwfzrMap == null ? "" : cwfzrMap.get("cerno"), contentFont));
            cwfzr12.setHorizontalAlignment(Element.ALIGN_CENTER);
            cwfzrtable.addCell(cwfzr12);

            document.add(cwfzrtable);

            //()
            Paragraph llrTitle = new Paragraph("\n", titleChinese);
            llrTitle.setAlignment(Paragraph.ALIGN_CENTER);
            document.add(llrTitle);

            //TABLE
            Table llrtable = new Table(4);
            int llrwidths[] = { 20, 30, 20, 30 };
            llrtable.setWidths(llrwidths);
            llrtable.setWidth(100);
            llrtable.setPadding(3);
            llrtable.setBorderWidth(1);
            llrtable.setAlignment(Cell.ALIGN_CENTER);

            Map<String, String> llrMap = (Map<String, String>) dataMap.get("llrMap");
            Cell llr1 = new Cell(new Phrase(" ", contentFont));
            llr1.setHorizontalAlignment(Element.ALIGN_CENTER);
            llrtable.addCell(llr1);
            Cell llr2 = new Cell(new Phrase(llrMap == null ? "" : llrMap.get("name"), contentFont));
            llr2.setHorizontalAlignment(Element.ALIGN_CENTER);
            llrtable.addCell(llr2);
            Cell llr3 = new Cell(new Phrase("", contentFont));
            llr3.setHorizontalAlignment(Element.ALIGN_CENTER);
            llrtable.addCell(llr3);
            Cell llr4 = new Cell(new Phrase(llrMap == null ? "" : llrMap.get("tel"), contentFont));
            llr4.setHorizontalAlignment(Element.ALIGN_CENTER);
            llrtable.addCell(llr4);

            Cell llr5 = new Cell(new Phrase("", contentFont));
            llr5.setHorizontalAlignment(Element.ALIGN_CENTER);
            llrtable.addCell(llr5);
            Cell llr6 = new Cell(new Phrase(llrMap == null ? "" : llrMap.get("mobile"), contentFont));
            llr6.setHorizontalAlignment(Element.ALIGN_CENTER);
            llrtable.addCell(llr6);
            Cell llr7 = new Cell(new Phrase("", contentFont));
            llr7.setHorizontalAlignment(Element.ALIGN_CENTER);
            llrtable.addCell(llr7);
            Cell llr8 = new Cell(new Phrase(llrMap == null ? "" : llrMap.get("email"), contentFont));
            llr8.setHorizontalAlignment(Element.ALIGN_CENTER);
            llrtable.addCell(llr8);

            Cell llr9 = new Cell(new Phrase("", contentFont));
            llr9.setHorizontalAlignment(Element.ALIGN_CENTER);
            llrtable.addCell(llr9);
            Cell llr10 = new Cell(new Phrase(llrMap == null ? "" : llrMap.get("certype"), contentFont));
            llr10.setHorizontalAlignment(Element.ALIGN_CENTER);
            llrtable.addCell(llr10);
            Cell llr11 = new Cell(new Phrase("", contentFont));
            llr11.setHorizontalAlignment(Element.ALIGN_CENTER);
            llrtable.addCell(llr11);
            Cell llr12 = new Cell(new Phrase(llrMap == null ? "" : llrMap.get("cerno"), contentFont));
            llr12.setHorizontalAlignment(Element.ALIGN_CENTER);
            llrtable.addCell(llr12);

            document.add(llrtable);

            //()
            Paragraph wtrTitle = new Paragraph("\n", titleChinese);
            wtrTitle.setAlignment(Paragraph.ALIGN_CENTER);
            document.add(wtrTitle);

            Map<String, String> wtrMap = (Map<String, String>) dataMap.get("wtrMap");

            String sqrText = "   " + (wtrMap == null ? "" : wtrMap.get("sqr"));
            Paragraph sqr = new Paragraph(sqrText, contentFont);
            sqr.setAlignment(Paragraph.ALIGN_LEFT);
            document.add(sqr);

            String wtrText = " " + (wtrMap == null ? "" : wtrMap.get("wtr"));
            Paragraph wtr = new Paragraph(wtrText, contentFont);
            wtr.setAlignment(Paragraph.ALIGN_LEFT);
            document.add(wtr);

            Paragraph wtsx = new Paragraph("\n", contentFont);
            wtsx.setAlignment(Paragraph.ALIGN_LEFT);
            document.add(wtsx);

            String wtText1 = "1    " + (wtrMap == null ? "" : wtrMap.get("entname"))
                    + "     ";
            Paragraph wt1 = new Paragraph(wtText1, contentFont);
            //
            wt1.setIndentationLeft(60);
            document.add(wt1);

            Paragraph wt2 = new Paragraph("           ",
                    contentFont);
            //
            wt2.setIndentationLeft(70);
            document.add(wt2);

            Paragraph wt3 = new Paragraph("       __________",
                    contentFont);
            //
            wt3.setIndentationLeft(70);
            document.add(wt3);

            Paragraph wt4 = new Paragraph("2." + (wtrMap == null ? "" : wtrMap.get("qx1"))
                    + " ", contentFont);
            //
            wt4.setIndentationLeft(60);
            document.add(wt4);

            Paragraph wt5 = new Paragraph(
                    "3." + (wtrMap == null ? "" : wtrMap.get("qx2")) + "  ",
                    contentFont);
            //
            wt5.setIndentationLeft(60);
            document.add(wt5);

            Paragraph wt6 = new Paragraph(
                    "4." + (wtrMap == null ? "" : wtrMap.get("qx3")) + " ",
                    contentFont);
            //
            wt6.setIndentationLeft(60);
            document.add(wt6);

            Paragraph wt7 = new Paragraph(
                    "5." + (wtrMap == null ? "" : wtrMap.get("qx4")) + "\n",
                    contentFont);
            //
            wt7.setIndentationLeft(60);
            document.add(wt7);

            Paragraph wt8 = new Paragraph(
                    "    " + (wtrMap == null ? "" : wtrMap.get("confrom"))
                            + "        " + (wtrMap == null ? "" : wtrMap.get("conto")) + " \n ",
                    contentFont);
            wt8.setAlignment(Paragraph.ALIGN_LEFT);
            document.add(wt8);

            //TABLE
            Table wtrtable = new Table(2);
            int[] wtrwidths = { 50, 50 };
            wtrtable.setWidths(wtrwidths);
            wtrtable.setWidth(100);
            wtrtable.setPadding(3);
            wtrtable.setBorderWidth(1);
            wtrtable.setAlignment(Cell.ALIGN_CENTER);

            Cell wtrc1 = new Cell(new Phrase("", contentFont));
            wtrc1.setRowspan(3);
            wtrc1.setHorizontalAlignment(Element.ALIGN_CENTER);
            wtrtable.addCell(wtrc1);

            Cell wtrc2 = new Cell(new Phrase(" ", contentFont));
            wtrc2.setHorizontalAlignment(Element.ALIGN_LEFT);
            wtrtable.addCell(wtrc2);

            String telText = "" + (wtrMap == null ? "" : wtrMap.get("tel"));
            Cell wtrc3 = new Cell(new Phrase(telText, contentFont));
            wtrc3.setHorizontalAlignment(Element.ALIGN_LEFT);
            wtrtable.addCell(wtrc3);

            String mobileText = "" + (wtrMap == null ? "" : wtrMap.get("mobile"));
            Cell wtrc4 = new Cell(new Phrase(mobileText, contentFont));
            wtrc4.setHorizontalAlignment(Element.ALIGN_LEFT);
            wtrtable.addCell(wtrc4);

            document.add(wtrtable);

            Paragraph wt9 = new Paragraph("\n ", contentFont);
            wt9.setAlignment(Paragraph.ALIGN_LEFT);
            document.add(wt9);

            Paragraph wt10 = new Paragraph("\n" + (wtrMap == null ? "" : wtrMap.get("condate")) + " ",
                    contentFont);
            wt10.setAlignment(Paragraph.ALIGN_RIGHT);
            document.add(wt10);

            //
            if ("WZGS".equals(opetype) || "WZHH".equals(opetype) || "WGJY".equals(opetype)) {
                Paragraph wtsTitle1 = new Paragraph("\n", titleChinese);
                wtsTitle1.setAlignment(Paragraph.ALIGN_CENTER);
                document.add(wtsTitle1);
                Paragraph wtsTitle2 = new Paragraph("", titleChinese);
                wtsTitle2.setAlignment(Paragraph.ALIGN_CENTER);
                document.add(wtsTitle2);

                Map<String, String> sdMap = (Map<String, String>) dataMap.get("sdMap");

                Paragraph sdsq = new Paragraph(" ", contentFont);
                sdsq.setAlignment(Paragraph.ALIGN_LEFT);
                document.add(sdsq);

                String sdbsqText = "    " + (sdMap == null ? "" : sdMap.get("name"));
                Paragraph sdbsq = new Paragraph(sdbsqText, contentFont);
                sdbsq.setAlignment(Paragraph.ALIGN_LEFT);
                document.add(sdbsq);

                String sqfwText = "   " + (sdMap == null ? "" : sdMap.get("name"))
                        + "     ";
                Paragraph sqfw = new Paragraph(sqfwText, contentFont);
                sqfw.setAlignment(Paragraph.ALIGN_LEFT);
                document.add(sqfw);

                Paragraph sqfw2 = new Paragraph(
                        "_______",
                        contentFont);
                sqfw2.setAlignment(Paragraph.ALIGN_LEFT);
                sqfw2.setIndentationLeft(60);
                document.add(sqfw2);

                //TABLE
                Table sdstable = new Table(4);
                int[] sdswidths = { 20, 30, 20, 30 };
                sdstable.setWidths(sdswidths);
                sdstable.setWidth(100);
                sdstable.setPadding(3);
                sdstable.setBorderWidth(1);
                sdstable.setAlignment(Cell.ALIGN_CENTER);

                Cell sd1 = new Cell(new Phrase("", contentFont));
                sd1.setHorizontalAlignment(Element.ALIGN_CENTER);
                sdstable.addCell(sd1);

                Cell sd2 = new Cell(new Phrase(sdMap == null ? "" : sdMap.get("addr"), contentFont));
                sd2.setHorizontalAlignment(Element.ALIGN_CENTER);
                sdstable.addCell(sd2);

                Cell sd3 = new Cell(new Phrase("", contentFont));
                sd3.setHorizontalAlignment(Element.ALIGN_CENTER);
                sdstable.addCell(sd3);

                Cell sd4 = new Cell(new Phrase(sdMap == null ? "" : sdMap.get("postalcode"), contentFont));
                sd4.setHorizontalAlignment(Element.ALIGN_CENTER);
                sdstable.addCell(sd4);

                Cell sd5 = new Cell(new Phrase("", contentFont));
                sd5.setHorizontalAlignment(Element.ALIGN_CENTER);
                sdstable.addCell(sd5);

                Cell sd6 = new Cell(new Phrase(sdMap == null ? "" : sdMap.get("linkman"), contentFont));
                sd6.setHorizontalAlignment(Element.ALIGN_CENTER);
                sdstable.addCell(sd6);

                Cell sd7 = new Cell(new Phrase("", contentFont));
                sd7.setHorizontalAlignment(Element.ALIGN_CENTER);
                sdstable.addCell(sd7);

                Cell sd8 = new Cell(new Phrase(sdMap == null ? "" : sdMap.get("email"), contentFont));
                sd8.setHorizontalAlignment(Element.ALIGN_CENTER);
                sdstable.addCell(sd8);

                Cell sd9 = new Cell(new Phrase("\n", contentFont));
                sd9.setRowspan(2);
                sd9.setHorizontalAlignment(Element.ALIGN_CENTER);
                sdstable.addCell(sd9);

                Cell sd10 = new Cell(
                        new Phrase("     " + (sdMap == null ? "" : sdMap.get("tel")), contentFont));
                sd10.setColspan(3);
                sd10.setHorizontalAlignment(Element.ALIGN_LEFT);
                sdstable.addCell(sd10);

                Cell sd11 = new Cell(
                        new Phrase("     " + (sdMap == null ? "" : sdMap.get("mobtel")), contentFont));
                sd11.setColspan(3);
                sd11.setHorizontalAlignment(Element.ALIGN_LEFT);
                sdstable.addCell(sd11);

                document.add(sdstable);

                Paragraph sds1 = new Paragraph(
                        "\n                                                                            ",
                        contentFont);
                sds1.setAlignment(Paragraph.ALIGN_LEFT);
                sds1.setIndentationLeft(100);
                document.add(sds1);

                Paragraph sds2 = new Paragraph("\n                                                      ",
                        contentFont);
                sds2.setAlignment(Paragraph.ALIGN_RIGHT);
                document.add(sds2);

                Paragraph remark = new Paragraph(
                        "  ",
                        contentFont);
                remark.setIndentationLeft(60);
                remark.setAlignment(Paragraph.ALIGN_LEFT);
                document.add(remark);
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
        logger.debug(e);
    }

    //PDF
    document.close();
}

From source file:com.preparatic.archivos.PdfGenerator.java

License:Apache License

@Override
 public void onEndPage(PdfWriter writer, Document document) {
     PdfContentByte cb = writer.getDirectContent();
     //        Phrase header = new Phrase("this is a header", ffont);
     //        ColumnText.showTextAligned(cb, Element.ALIGN_CENTER,
     //                header,
     //                (document.right() - document.left()) / 2 + document.leftMargin(),
     //                document.top() + 10, 0);        
     Phrase footer = new Phrase(String.format(title + ", pgina %d", pageNumber), ffont);
     ColumnText.showTextAligned(cb, Element.ALIGN_CENTER, footer,
             (document.right() - document.left()) / 2 + document.leftMargin(), document.bottom() - 10, 0);
 }

From source file:com.prime.report.template.TableHeader.java

/**
 * Adds a header to every page//from   w  w  w .  j av  a 2 s . co m
 *
 * @param writer
 * @param document
 * @see com.itextpdf.text.pdf.PdfPageEventHelper#onEndPage(
 * com.itextpdf.text.pdf.PdfWriter, com.itextpdf.text.Document)
 */
@Override
public void onEndPage(PdfWriter writer, Document document) {

    PdfPTable table = new PdfPTable(4);
    try {
        table.setWidths(new int[] { 10, 11, 9, 1 });
        table.setTotalWidth(527);
        table.setLockedWidth(true);
        table.getDefaultCell().setFixedHeight(20);
        table.getDefaultCell().setBorder(Rectangle.NO_BORDER);

        String logoPath = "/resources/image/logo.png";
        ServletContext servletContext = (ServletContext) facesContext.getExternalContext().getContext();
        String logo = servletContext.getRealPath(logoPath);
        Image img = Image.getInstance(logo);

        table.addCell(Image.getInstance(img));

        table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
        table.addCell(new Phrase("New South West Facility Center",
                FontFactory.getFont(FontFactory.HELVETICA, 12, Font.BOLDITALIC, Color.BLACK)));
        table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT);
        table.addCell(String.format("Page %d of", writer.getPageNumber()));
        PdfPCell cell = new PdfPCell(Image.getInstance(total));
        cell.setBorder(Rectangle.NO_BORDER);
        table.addCell(cell);
        table.writeSelectedRows(0, -1, 34, 803, writer.getDirectContent());
    } catch (DocumentException de) {
        throw new ExceptionConverter(de);
    } catch (IOException ex) {
        Logger.getLogger(TableHeader.class.getName()).log(Level.SEVERE, null, ex);
    }

}

From source file:com.qcadoo.mes.costCalculation.print.CostCalculationPdfService.java

License:Open Source License

public PdfPTable addLeftPanelToReport(final Entity costCalculation, final Locale locale) {
    PdfPTable leftPanelColumn = pdfHelper.createPanelTable(1);
    leftPanelColumn.getDefaultCell().setVerticalAlignment(Element.ALIGN_TOP);

    Entity order = costCalculation.getBelongsToField(CostCalculationFields.ORDER);
    String calculateOperationCostsMode = costCalculation
            .getStringField(CostCalculationFields.CALCULATE_OPERATION_COSTS_MODE);
    String calculateMaterialCostsMode = costCalculation
            .getStringField(CostCalculationFields.CALCULATE_MATERIAL_COSTS_MODE);

    pdfHelper.addTableCellAsTwoColumnsTable(leftPanelColumn,
            translationService.translate("costCalculation.costCalculation.number.label", locale) + ":",
            costCalculation.getStringField(CostCalculationFields.NUMBER));
    pdfHelper.addTableCellAsTwoColumnsTable(leftPanelColumn,
            translationService.translate("costCalculation.costCalculation.product.label", locale) + ":",
            costCalculation.getBelongsToField(CostCalculationFields.PRODUCT)
                    .getStringField(ProductFields.NAME));
    pdfHelper.addTableCellAsTwoColumnsTable(leftPanelColumn,
            translationService.translate("costCalculation.costCalculation.technology.label", locale) + ":",
            costCalculation.getBelongsToField(CostCalculationFields.TECHNOLOGY)
                    .getStringField(TechnologyFields.NAME));
    pdfHelper.addTableCellAsTwoColumnsTable(leftPanelColumn,
            translationService.translate("costCalculation.costCalculation.quantity.label", locale) + ":",
            numberService.format(costCalculation.getField(CostCalculationFields.QUANTITY)));
    pdfHelper.addTableCellAsTwoColumnsTable(leftPanelColumn,
            translationService.translate("costCalculation.costCalculation.order.label", locale) + ":",
            order == null ? "" : order.getStringField(OrderFields.NAME));

    leftPanelColumn.addCell(new Phrase(
            translationService.translate(
                    "costCalculation.costCalculationDetails.window.mainTab.form.parameters", locale) + ":",
            FontUtils.getDejavuBold10Dark()));

    if (!CalculateOperationCostMode.PIECEWORK.getStringValue().equals(calculateOperationCostsMode)) {
        pdfHelper.addTableCellAsTwoColumnsTable(leftPanelColumn,
                L_TAB_IN_TEXT + translationService.translate(
                        "costCalculation.costCalculationDetails.report.columnHeader.includeAdditionalTime",
                        locale) + ":",
                costCalculation.getBooleanField(CostCalculationFields.INCLUDE_ADDITIONAL_TIME)
                        ? translationService.translate("qcadooView.true", locale)
                        : translationService.translate("qcadooView.false", locale));

        pdfHelper.addTableCellAsTwoColumnsTable(leftPanelColumn,
                L_TAB_IN_TEXT + translationService.translate("costCalculation.costCalculation.includeTPZ.label",
                        locale) + ":",
                costCalculation.getBooleanField(CostCalculationFields.INCLUDE_TPZ)
                        ? translationService.translate("qcadooView.true", locale)
                        : translationService.translate("qcadooView.false", locale));
    }//from  w  w  w.j  a  va  2 s  .  c  o  m

    Object reportData = calculateMaterialCostsMode;
    pdfHelper.addTableCellAsTwoColumnsTable(leftPanelColumn,
            L_TAB_IN_TEXT + translationService
                    .translate("costCalculation.costCalculation.calculateMaterialCostsMode.label", locale),
            reportData == null ? translationService.translate("qcadooView.form.blankComboBoxValue", locale)
                    : translationService
                            .translate("costCalculation.costCalculation.calculateMaterialCostsMode.value."
                                    + reportData.toString(), locale));

    reportData = calculateOperationCostsMode;
    pdfHelper.addTableCellAsTwoColumnsTable(leftPanelColumn,
            L_TAB_IN_TEXT + translationService
                    .translate("costCalculation.costCalculation.calculateOperationCostsMode.label", locale),
            reportData == null ? translationService.translate("qcadooView.form.blankComboBoxValue", locale)
                    : translationService
                            .translate("costCalculation.costCalculation.calculateOperationCostsMode.value."
                                    + reportData.toString(), locale));

    reportData = costCalculation.getStringField(CostCalculationFields.DESCRIPTION);
    pdfHelper.addTableCellAsTwoColumnsTable(leftPanelColumn, L_TAB_IN_TEXT
            + translationService.translate("costCalculation.costCalculation.description.label", locale) + ":",
            (reportData == null ? "" : reportData));

    return leftPanelColumn;
}

From source file:com.qcadoo.mes.costCalculation.print.CostCalculationPdfService.java

License:Open Source License

public PdfPTable addRightPanelToReport(final Entity costCalculation, final Locale locale) {
    PdfPTable rightPanelColumn = pdfHelper.createPanelTable(1);
    rightPanelColumn.getDefaultCell().setVerticalAlignment(Element.ALIGN_TOP);

    rightPanelColumn.addCell(new Phrase(translationService.translate(
            "costCalculation.costCalculationDetails.window.mainTab.form.technicalProductionCost", locale) + ":",
            FontUtils.getDejavuBold10Dark()));

    Object reportData = costCalculation.getDecimalField(CostCalculationFields.TOTAL_MATERIAL_COSTS);
    pdfHelper.addTableCellAsTwoColumnsTable(rightPanelColumn,
            L_TAB_IN_TEXT + translationService
                    .translate("costCalculation.costCalculation.totalMaterialCosts.label", locale) + ":",
            (reportData == null ? "" : numberService.format(reportData)) + " "
                    + currencyService.getCurrencyAlphabeticCode());

    reportData = costCalculation.getDecimalField(CostCalculationFields.TOTAL_MACHINE_HOURLY_COSTS);
    pdfHelper.addTableCellAsTwoColumnsTable(rightPanelColumn,
            L_TAB_IN_TEXT + translationService
                    .translate("costCalculation.costCalculation.totalMachineHourlyCosts.label", locale) + ":",
            (reportData == null ? "" : numberService.format(reportData)) + " "
                    + currencyService.getCurrencyAlphabeticCode());

    reportData = costCalculation.getDecimalField(CostCalculationFields.TOTAL_LABOR_HOURLY_COSTS);
    pdfHelper.addTableCellAsTwoColumnsTable(rightPanelColumn,
            L_TAB_IN_TEXT + translationService
                    .translate("costCalculation.costCalculation.totalLaborHourlyCosts.label", locale) + ":",
            (reportData == null ? "" : numberService.format(reportData)) + " "
                    + currencyService.getCurrencyAlphabeticCode());

    reportData = costCalculation.getDecimalField(CostCalculationFields.TOTAL_TECHNICAL_PRODUCTION_COSTS);
    pdfHelper.addTableCellAsTwoColumnsTable(rightPanelColumn,
            L_TAB_IN_TEXT/* ww w .j a  va  2 s.  c o  m*/
                    + translationService.translate(
                            "costCalculation.costCalculation.totalTechnicalProductionCosts.label", locale)
                    + ":",
            (reportData == null ? "" : numberService.format(reportData)) + " "
                    + currencyService.getCurrencyAlphabeticCode());

    rightPanelColumn.addCell(new Phrase(translationService
            .translate("costCalculation.costCalculationDetails.window.mainTab.form.overheads", locale) + ":",
            FontUtils.getDejavuBold10Dark()));

    reportData = costCalculation.getDecimalField(CostCalculationFields.PRODUCTION_COST_MARGIN);
    Object reportData2 = costCalculation.getDecimalField(CostCalculationFields.PRODUCTION_COST_MARGIN_VALUE);
    pdfHelper.addTableCellAsTwoColumnsTable(rightPanelColumn,
            L_TAB_IN_TEXT + translationService
                    .translate("costCalculation.costCalculation.productionCostMargin.label", locale) + ":",
            (reportData == null ? ""
                    : numberService.format(reportData) + (reportData2 == null ? ""
                            : " %\n (" + "= " + reportData2.toString() + " "
                                    + currencyService.getCurrencyAlphabeticCode() + ")")));

    reportData = costCalculation.getDecimalField(CostCalculationFields.MATERIAL_COST_MARGIN);
    reportData2 = costCalculation.getDecimalField(CostCalculationFields.MATERIAL_COST_MARGIN_VALUE);
    pdfHelper.addTableCellAsTwoColumnsTable(rightPanelColumn,
            L_TAB_IN_TEXT + translationService
                    .translate("costCalculation.costCalculation.materialCostMargin.label", locale) + ":",
            (reportData == null ? ""
                    : numberService.format(reportData) + (reportData2 == null ? ""
                            : " %\n (" + "= " + reportData2.toString() + " "
                                    + currencyService.getCurrencyAlphabeticCode() + ")")));

    reportData = costCalculation.getDecimalField(CostCalculationFields.ADDITIONAL_OVERHEAD);
    pdfHelper.addTableCellAsTwoColumnsTable(rightPanelColumn,
            L_TAB_IN_TEXT + translationService
                    .translate("costCalculation.costCalculation.additionalOverhead.label", locale) + ":",
            (reportData == null ? "" : numberService.format(reportData)) + " "
                    + currencyService.getCurrencyAlphabeticCode());

    reportData = costCalculation.getDecimalField(CostCalculationFields.TOTAL_COSTS);
    rightPanelColumn.addCell(new Phrase(translationService
            .translate("costCalculation.costCalculationDetails.window.mainTab.form.totalCost", locale) + ":",
            FontUtils.getDejavuBold10Dark()));

    pdfHelper.addTableCellAsTable(rightPanelColumn, L_TAB_IN_TEXT
            + translationService.translate("costCalculation.costCalculation.totalCosts.label", locale) + ":",
            (reportData == null ? "" : numberService.format(reportData)) + " "
                    + currencyService.getCurrencyAlphabeticCode(),
            FontUtils.getDejavuBold10Dark(), FontUtils.getDejavuRegular10Dark(), 2);

    reportData = costCalculation.getDecimalField(CostCalculationFields.TOTAL_COST_PER_UNIT);
    pdfHelper.addTableCellAsTable(rightPanelColumn,
            L_TAB_IN_TEXT + translationService
                    .translate("costCalculation.costCalculation.totalCostPerUnit.label", locale) + ":",
            (reportData == null ? "" : numberService.format(reportData)) + " "
                    + currencyService.getCurrencyAlphabeticCode(),
            FontUtils.getDejavuBold10Dark(), FontUtils.getDejavuRegular10Dark(), 2);

    return rightPanelColumn;
}

From source file:com.qcadoo.mes.costCalculation.print.CostCalculationPdfService.java

License:Open Source License

public PdfPTable addMaterialsTable(final Entity costCalculation, final Locale locale) {
    List<String> materialsTableHeader = Lists.newArrayList();
    Map<String, HeaderAlignment> alignments = Maps.newHashMap();

    for (String translate : Arrays.asList(
            L_COST_CALCULATION_COST_CALCULATION_DETAILS_REPORT_COLUMN_HEADER_NUMBER,
            "costCalculation.costCalculationDetails.report.columnHeader.quantity",
            "costCalculation.costCalculationDetails.report.columnHeader.unit",
            "costCalculation.costCalculationDetails.report.columnHeader.costs",
            "costCalculation.costCalculationDetails.report.columnHeader.margin",
            "costCalculation.costCalculationDetails.report.columnHeader.totalCosts")) {
        materialsTableHeader.add(translationService.translate(translate, locale));
    }//  w ww . j a  v a 2  s.c om

    alignments.put(translationService.translate(
            "costCalculation.costCalculationDetails.report.columnHeader.number", locale), HeaderAlignment.LEFT);
    alignments.put(translationService
            .translate("costCalculation.costCalculationDetails.report.columnHeader.quantity", locale),
            HeaderAlignment.RIGHT);
    alignments.put(translationService.translate(
            "costCalculation.costCalculationDetails.report.columnHeader.unit", locale), HeaderAlignment.LEFT);
    alignments.put(translationService.translate(
            "costCalculation.costCalculationDetails.report.columnHeader.costs", locale), HeaderAlignment.RIGHT);
    alignments.put(translationService
            .translate("costCalculation.costCalculationDetails.report.columnHeader.margin", locale),
            HeaderAlignment.RIGHT);
    alignments.put(
            translationService
                    .translate("costCalculation.costCalculationDetails.report.columnHeader.totalCosts", locale),
            HeaderAlignment.RIGHT);

    PdfPTable materialsTable = pdfHelper.createTableWithHeader(materialsTableHeader.size(),
            materialsTableHeader, false, alignments);

    try {
        float[] columnWidths = { 1f, 1f, 0.5f, 1f, 1f, 1.5f };
        materialsTable.setWidths(columnWidths);
    } catch (DocumentException e) {
        throw new IllegalStateException(e.getMessage(), e);
    }

    Entity technology;
    Entity order = costCalculation.getBelongsToField(CostCalculationFields.ORDER);

    if (order == null) {
        technology = costCalculation.getBelongsToField(CostCalculationFields.TECHNOLOGY);
    } else {
        technology = costCalculation.getBelongsToField(CostCalculationFields.ORDER)
                .getBelongsToField(CostCalculationFields.TECHNOLOGY);
    }

    BigDecimal quantity = costCalculation.getDecimalField(CostCalculationFields.QUANTITY);

    Map<Long, BigDecimal> neededProductQuantities = getNeededProductQuantities(costCalculation, technology,
            quantity, MrpAlgorithm.COMPONENTS_AND_SUBCONTRACTORS_PRODUCTS);

    // TODO LUPO fix comparator
    // neededProductQuantities = SortUtil.sortMapUsingComparator(neededProductQuantities, new EntityNumberComparator());

    MathContext mathContext = numberService.getMathContext();

    for (Entry<Long, BigDecimal> neededProductQuantity : neededProductQuantities.entrySet()) {
        Entity product = productQuantitiesService.getProduct(neededProductQuantity.getKey());

        Entity productEntity = productsCostCalculationService.getAppropriateCostNormForProduct(product, order,
                costCalculation.getStringField(CostCalculationFields.SOURCE_OF_MATERIAL_COSTS));

        BigDecimal productQuantity = neededProductQuantity.getValue();

        materialsTable.addCell(
                new Phrase(product.getStringField(ProductFields.NUMBER), FontUtils.getDejavuRegular7Dark()));
        materialsTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT);
        materialsTable
                .addCell(new Phrase(numberService.format(productQuantity), FontUtils.getDejavuRegular7Dark()));
        materialsTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);
        materialsTable.addCell(
                new Phrase(product.getStringField(ProductFields.UNIT), FontUtils.getDejavuRegular7Dark()));
        materialsTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT);

        BigDecimal costForGivenQuantity = productsCostCalculationService.calculateProductCostForGivenQuantity(
                productEntity, productQuantity,
                costCalculation.getStringField(CostCalculationFields.CALCULATE_MATERIAL_COSTS_MODE));

        materialsTable.addCell(
                new Phrase(numberService.format(costForGivenQuantity), FontUtils.getDejavuRegular7Dark()));

        BigDecimal materialCostMargin = costCalculation
                .getDecimalField(CostCalculationFields.MATERIAL_COST_MARGIN);

        if (materialCostMargin == null) {
            materialsTable.addCell(new Phrase(numberService.format(0.0), FontUtils.getDejavuRegular7Dark()));
            materialsTable.addCell(
                    new Phrase(numberService.format(costForGivenQuantity), FontUtils.getDejavuRegular7Dark()));
        } else {
            BigDecimal toAdd = costForGivenQuantity
                    .multiply(materialCostMargin.divide(new BigDecimal(100), mathContext), mathContext);
            BigDecimal totalCosts = costForGivenQuantity.add(toAdd, mathContext);

            materialsTable.addCell(new Phrase(numberService.format(toAdd), FontUtils.getDejavuRegular7Dark()));
            materialsTable
                    .addCell(new Phrase(numberService.format(totalCosts), FontUtils.getDejavuRegular7Dark()));
        }

        materialsTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);
    }

    BigDecimal totalMaterialCosts = costCalculation.getDecimalField(CostCalculationFields.TOTAL_MATERIAL_COSTS);
    BigDecimal materialCostsMarginValue = costCalculation
            .getDecimalField(CostCalculationFields.MATERIAL_COST_MARGIN_VALUE);

    BigDecimal totalCostOfMaterialValue = totalMaterialCosts.add(materialCostsMarginValue, mathContext);

    String totalMaterialCostsToString = numberService.format(totalMaterialCosts);
    String materialCostMarginValueToString = numberService.format(materialCostsMarginValue);
    String totalCostOfMaterialToString = numberService.format(totalCostOfMaterialValue);

    materialsTable.addCell(new Phrase(
            translationService.translate("costCalculation.costCalculation.report.totalMaterial", locale),
            FontUtils.getDejavuRegular7Dark()));
    materialsTable.addCell("");
    materialsTable.addCell("");
    materialsTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT);

    materialsTable.addCell(new Phrase(totalMaterialCostsToString, FontUtils.getDejavuRegular7Dark()));
    materialsTable.addCell(new Phrase(materialCostMarginValueToString, FontUtils.getDejavuRegular7Dark()));
    materialsTable.addCell(new Phrase(totalCostOfMaterialToString, FontUtils.getDejavuRegular7Dark()));

    materialsTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);

    return materialsTable;
}

From source file:com.qcadoo.mes.costCalculation.print.CostCalculationPdfService.java

License:Open Source License

private PdfPTable addHourlyCostsTable(final Entity costCalculation, final Locale locale) {
    List<String> hourlyCostsTableHeader = Lists.newArrayList();

    for (String translate : Arrays.asList("costCalculation.costCalculationDetails.report.columnHeader.level",
            L_COST_CALCULATION_COST_CALCULATION_DETAILS_REPORT_COLUMN_HEADER_NUMBER,
            "costCalculation.costCalculationDetails.report.columnHeader.machDuration",
            "costCalculation.costCalculationDetails.report.columnHeader.machCosts",
            "costCalculation.costCalculationDetails.report.columnHeader.labDuration",
            "costCalculation.costCalculationDetails.report.columnHeader.labCosts",
            "costCalculation.costCalculationDetails.report.columnHeader.margin",
            "costCalculation.costCalculationDetails.report.columnHeader.totalCosts")) {
        hourlyCostsTableHeader.add(translationService.translate(translate, locale));
    }//from   ww  w .j a v a2 s  . c  o m

    Map<String, HeaderAlignment> alignments = Maps.newHashMap();
    alignments.put(translationService.translate(
            "costCalculation.costCalculationDetails.report.columnHeader.level", locale), HeaderAlignment.LEFT);
    alignments.put(
            translationService
                    .translate(L_COST_CALCULATION_COST_CALCULATION_DETAILS_REPORT_COLUMN_HEADER_NUMBER, locale),
            HeaderAlignment.LEFT);
    alignments.put(
            translationService.translate(
                    "costCalculation.costCalculationDetails.report.columnHeader.machDuration", locale),
            HeaderAlignment.RIGHT);
    alignments.put(translationService
            .translate("costCalculation.costCalculationDetails.report.columnHeader.machCosts", locale),
            HeaderAlignment.RIGHT);
    alignments.put(
            translationService.translate(
                    "costCalculation.costCalculationDetails.report.columnHeader.labDuration", locale),
            HeaderAlignment.RIGHT);
    alignments.put(translationService
            .translate("costCalculation.costCalculationDetails.report.columnHeader.labCosts", locale),
            HeaderAlignment.RIGHT);
    alignments.put(translationService
            .translate("costCalculation.costCalculationDetails.report.columnHeader.margin", locale),
            HeaderAlignment.RIGHT);
    alignments.put(
            translationService
                    .translate("costCalculation.costCalculationDetails.report.columnHeader.totalCosts", locale),
            HeaderAlignment.RIGHT);

    List<Entity> calculationOperationComponents = costCalculation
            .getHasManyField(CostCalculationFields.CALCULATION_OPERATION_COMPONENTS);

    PdfPTable hourlyCostsTable = pdfHelper.createTableWithHeader(hourlyCostsTableHeader.size(),
            hourlyCostsTableHeader, false, alignments);

    try {
        float[] columnWidths = { 1f, 0.75f, 1f, 1f, 1f, 1f, 1f, 1.25f };
        hourlyCostsTable.setWidths(columnWidths);

    } catch (DocumentException e) {
        throw new IllegalStateException(e.getMessage(), e);
    }

    if (calculationOperationComponents != null && !calculationOperationComponents.isEmpty()) {
        Integer totalMachineWorkTimeSummary = Integer.valueOf(0);
        Integer totalLaborWorkTimeSummary = Integer.valueOf(0);

        BigDecimal totalOperationCostSummary = BigDecimal.ZERO;

        MathContext mathContext = numberService.getMathContext();

        for (Entity calculationOperationComponent : calculationOperationComponents) {
            Integer machineWorkTime = calculationOperationComponent
                    .getIntegerField(CalculationOperationComponentFields.MACHINE_WORK_TIME);
            Integer laborWorkTime = calculationOperationComponent
                    .getIntegerField(CalculationOperationComponentFields.LABOR_WORK_TIME);
            BigDecimal totalMachineOperationCost = calculationOperationComponent
                    .getDecimalField(CalculationOperationComponentFields.TOTAL_MACHINE_OPERATION_COST);
            BigDecimal totalLaborOperationCost = calculationOperationComponent
                    .getDecimalField(CalculationOperationComponentFields.TOTAL_LABOR_OPERATION_COST);
            BigDecimal operationCost = calculationOperationComponent
                    .getDecimalField(CalculationOperationComponentFields.OPERATION_COST);
            BigDecimal operationMarginCost = calculationOperationComponent
                    .getDecimalField(CalculationOperationComponentFields.OPERATION_MARGIN_COST);
            BigDecimal totalOperationCost = calculationOperationComponent
                    .getDecimalField(CalculationOperationComponentFields.TOTAL_OPERATION_COST);

            hourlyCostsTable
                    .addCell(new Phrase(
                            calculationOperationComponent
                                    .getField(CalculationOperationComponentFields.NODE_NUMBER).toString(),
                            FontUtils.getDejavuRegular7Dark()));
            hourlyCostsTable.addCell(new Phrase(
                    calculationOperationComponent.getBelongsToField(TechnologiesConstants.MODEL_OPERATION)
                            .getStringField(OperationFields.NUMBER),
                    FontUtils.getDejavuRegular7Dark()));
            hourlyCostsTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT);
            hourlyCostsTable.addCell(new Phrase(timeConverterService.convertTimeToString(machineWorkTime),
                    FontUtils.getDejavuRegular7Dark()));
            hourlyCostsTable.addCell(new Phrase(numberService.format(totalMachineOperationCost),
                    FontUtils.getDejavuRegular7Dark()));
            hourlyCostsTable.addCell(new Phrase(timeConverterService.convertTimeToString(laborWorkTime),
                    FontUtils.getDejavuRegular7Dark()));
            hourlyCostsTable.addCell(new Phrase(numberService.format(totalLaborOperationCost),
                    FontUtils.getDejavuRegular7Dark()));
            hourlyCostsTable.addCell(
                    new Phrase(numberService.format(operationMarginCost), FontUtils.getDejavuRegular7Dark()));
            hourlyCostsTable.addCell(
                    new Phrase(numberService.format(totalOperationCost), FontUtils.getDejavuRegular7Dark()));

            hourlyCostsTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);

            totalMachineWorkTimeSummary += IntegerUtils.convertNullToZero(machineWorkTime);
            totalLaborWorkTimeSummary += IntegerUtils.convertNullToZero(laborWorkTime);

            // BigDecimal totalMachineOperationCostWithMargin =
            // BigDecimalUtils.convertNullToZero(calculationOperationComponent
            // .getDecimalField(CalculationOperationComponentFields.TOTAL_MACHINE_OPERATION_COST_WITH_MARGIN));
            //
            // BigDecimal totalLaborOperationCostWithMargin = BigDecimalUtils.convertNullToZero(calculationOperationComponent
            // .getDecimalField(CalculationOperationComponentFields.TOTAL_LABOR_OPERATION_COST_WITH_MARGIN));

            // BigDecimal totalOperationCostSummary =
            // totalMachineOperationCostWithMargin.add(totalLaborOperationCostWithMargin,
            // mathContext);
            //
            // totalOperationCostWithMarginSummary = totalOperationCostWithMarginSummary.add(totalOperationCostWithMargin,
            // mathContext);

            totalOperationCostSummary = totalOperationCostSummary.add(operationCost, mathContext);
        }

        BigDecimal productionCostMarginValue = costCalculation
                .getDecimalField(CostCalculationFields.PRODUCTION_COST_MARGIN_VALUE);

        BigDecimal totalOperationCost = totalOperationCostSummary.add(productionCostMarginValue, mathContext);

        String totalMachineWorkTimeToString = timeConverterService
                .convertTimeToString(totalMachineWorkTimeSummary);
        String totalMachineHourlyCosts = numberService
                .format(costCalculation.getDecimalField(CostCalculationFields.TOTAL_MACHINE_HOURLY_COSTS));
        String totalLaborWorkTimeToString = timeConverterService.convertTimeToString(totalLaborWorkTimeSummary);
        String totalLaborHourlyCosts = numberService
                .format(costCalculation.getDecimalField(CostCalculationFields.TOTAL_LABOR_HOURLY_COSTS));
        String totalProductionCostMarginValue = numberService.format(productionCostMarginValue);
        String totalOperationCostToString = numberService.format(totalOperationCost);

        hourlyCostsTable.addCell(new Phrase(
                translationService.translate("costCalculation.costCalculation.report.totalOperation", locale),
                FontUtils.getDejavuRegular7Dark()));
        hourlyCostsTable.addCell(new Phrase("", FontUtils.getDejavuRegular7Dark()));
        hourlyCostsTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT);

        hourlyCostsTable.addCell(new Phrase(totalMachineWorkTimeToString, FontUtils.getDejavuRegular7Dark()));
        hourlyCostsTable.addCell(new Phrase(totalMachineHourlyCosts, FontUtils.getDejavuRegular7Dark()));
        hourlyCostsTable.addCell(new Phrase(totalLaborWorkTimeToString, FontUtils.getDejavuRegular7Dark()));
        hourlyCostsTable.addCell(new Phrase(totalLaborHourlyCosts, FontUtils.getDejavuRegular7Dark()));
        hourlyCostsTable.addCell(new Phrase(totalProductionCostMarginValue, FontUtils.getDejavuRegular7Dark()));
        hourlyCostsTable.addCell(new Phrase(totalOperationCostToString, FontUtils.getDejavuRegular7Dark()));

        hourlyCostsTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);
    }

    return hourlyCostsTable;
}

From source file:com.qcadoo.mes.costCalculation.print.CostCalculationPdfService.java

License:Open Source License

private PdfPTable addTableAboutPieceworkCost(final Entity costCalculation, final Locale locale) {
    List<String> pieceworkCostsTableHeader = Lists.newArrayList();
    Map<String, HeaderAlignment> alignments = Maps.newHashMap();

    for (String translate : Arrays.asList("costCalculation.costCalculationDetails.report.columnHeader.level",
            L_COST_CALCULATION_COST_CALCULATION_DETAILS_REPORT_COLUMN_HEADER_NUMBER,
            "costCalculation.costCalculationDetails.report.columnHeader.pieces",
            "costCalculation.costCalculationDetails.report.columnHeader.operationCost",
            "costCalculation.costCalculationDetails.report.columnHeader.margin",
            "costCalculation.costCalculationDetails.report.columnHeader.totalCosts")) {
        pieceworkCostsTableHeader.add(translationService.translate(translate, locale));
    }//from   w w  w.jav a2  s . c om
    alignments.put(translationService.translate(
            "costCalculation.costCalculationDetails.report.columnHeader.level", locale), HeaderAlignment.LEFT);
    alignments.put(
            translationService
                    .translate(L_COST_CALCULATION_COST_CALCULATION_DETAILS_REPORT_COLUMN_HEADER_NUMBER, locale),
            HeaderAlignment.LEFT);
    alignments.put(translationService
            .translate("costCalculation.costCalculationDetails.report.columnHeader.pieces", locale),
            HeaderAlignment.RIGHT);
    alignments.put(
            translationService.translate(
                    "costCalculation.costCalculationDetails.report.columnHeader.operationCost", locale),
            HeaderAlignment.RIGHT);
    alignments.put(translationService
            .translate("costCalculation.costCalculationDetails.report.columnHeader.margin", locale),
            HeaderAlignment.RIGHT);
    alignments.put(
            translationService
                    .translate("costCalculation.costCalculationDetails.report.columnHeader.totalCosts", locale),
            HeaderAlignment.RIGHT);

    List<Entity> calculationOperationComponents = costCalculation
            .getTreeField(CostCalculationFields.CALCULATION_OPERATION_COMPONENTS);

    PdfPTable pieceworkCostsTable = pdfHelper.createTableWithHeader(pieceworkCostsTableHeader.size(),
            pieceworkCostsTableHeader, false, alignments);

    try {
        float[] columnWidths = { 1f, 0.75f, 1f, 1f, 1f, 1.25f };
        pieceworkCostsTable.setWidths(columnWidths);
    } catch (DocumentException e) {
        throw new IllegalStateException(e.getMessage(), e);
    }

    if (!calculationOperationComponents.isEmpty()) {
        BigDecimal totalOperationCostSummary = BigDecimal.ZERO;
        BigDecimal totalPieces = BigDecimal.ZERO;

        MathContext mathContext = numberService.getMathContext();

        for (Entity calculationOperationComponent : calculationOperationComponents) {
            BigDecimal pieces = calculationOperationComponent
                    .getDecimalField(CalculationOperationComponentFields.PIECES);
            BigDecimal operationCost = calculationOperationComponent
                    .getDecimalField(CalculationOperationComponentFields.OPERATION_COST);
            BigDecimal operationMarginCost = calculationOperationComponent
                    .getDecimalField(CalculationOperationComponentFields.OPERATION_MARGIN_COST);
            BigDecimal totalOperationCost = calculationOperationComponent
                    .getDecimalField(CalculationOperationComponentFields.TOTAL_OPERATION_COST);

            pieceworkCostsTable
                    .addCell(new Phrase(
                            calculationOperationComponent
                                    .getField(CalculationOperationComponentFields.NODE_NUMBER).toString(),
                            FontUtils.getDejavuRegular7Dark()));
            pieceworkCostsTable.addCell(new Phrase(
                    calculationOperationComponent.getBelongsToField(TechnologiesConstants.MODEL_OPERATION)
                            .getStringField(OperationFields.NUMBER),
                    FontUtils.getDejavuRegular7Dark()));
            pieceworkCostsTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT);
            pieceworkCostsTable
                    .addCell(new Phrase(numberService.format(pieces), FontUtils.getDejavuRegular7Dark()));
            pieceworkCostsTable.addCell(
                    new Phrase(numberService.format(operationCost), FontUtils.getDejavuRegular7Dark()));
            pieceworkCostsTable.addCell(
                    new Phrase(numberService.format(operationMarginCost), FontUtils.getDejavuRegular7Dark()));
            pieceworkCostsTable.addCell(
                    new Phrase(numberService.format(totalOperationCost), FontUtils.getDejavuRegular7Dark()));

            pieceworkCostsTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);

            totalPieces = totalPieces.add(pieces, mathContext);

            totalOperationCostSummary = totalOperationCostSummary.add(operationCost, mathContext);
        }

        BigDecimal productionCostMarginValue = costCalculation
                .getDecimalField(CostCalculationFields.PRODUCTION_COST_MARGIN_VALUE);

        BigDecimal totalOperationCost = totalOperationCostSummary.add(productionCostMarginValue, mathContext);

        String totalPiecesToString = numberService.format(totalPieces);
        String totalOperationCostSummaryToString = numberService.format(totalOperationCostSummary);
        String productionCostMarginValueToString = numberService.format(productionCostMarginValue);
        String totalOperationCostToString = numberService.format(totalOperationCost);

        pieceworkCostsTable.addCell(new Phrase(
                translationService.translate("costCalculation.costCalculation.report.totalOperation", locale),
                FontUtils.getDejavuRegular7Dark()));
        pieceworkCostsTable.addCell(new Phrase("", FontUtils.getDejavuRegular7Dark()));
        pieceworkCostsTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT);

        pieceworkCostsTable.addCell(new Phrase(totalPiecesToString, FontUtils.getDejavuRegular7Dark()));
        pieceworkCostsTable
                .addCell(new Phrase(totalOperationCostSummaryToString, FontUtils.getDejavuRegular7Dark()));
        pieceworkCostsTable
                .addCell(new Phrase(productionCostMarginValueToString, FontUtils.getDejavuRegular7Dark()));
        pieceworkCostsTable.addCell(new Phrase(totalOperationCostToString, FontUtils.getDejavuRegular7Dark()));

        pieceworkCostsTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);
    }

    return pieceworkCostsTable;
}