Example usage for com.lowagie.text.pdf PdfPTable setWidthPercentage

List of usage examples for com.lowagie.text.pdf PdfPTable setWidthPercentage

Introduction

In this page you can find the example usage for com.lowagie.text.pdf PdfPTable setWidthPercentage.

Prototype

public void setWidthPercentage(float widthPercentage) 

Source Link

Document

Sets the width percentage that the table will occupy in the page.

Usage

From source file:org.egov.works.web.actions.estimate.EstimatePDFGenerator.java

License:Open Source License

private void addZoneYearHeader(final AbstractEstimate estimate, final CFinancialYear financialYear)
        throws DocumentException {
    document.add(spacer());/*from  www.  jav  a 2 s.  com*/
    final PdfPTable headerTable = new PdfPTable(2);
    headerTable.setWidthPercentage(100);
    headerTable.setWidths(new float[] { 1f, 1f });
    Paragraph financialYearPara = new Paragraph();
    if (financialYear != null)
        financialYearPara = makePara("Budget Year: " + financialYear.getFinYearRange(), Element.ALIGN_RIGHT);
    addRow(headerTable, false, makePara("Estimate Number: " + estimate.getEstimateNumber(), Element.ALIGN_LEFT),
            financialYearPara);

    document.add(headerTable);
    if (estimate.getWard() != null && "Ward".equalsIgnoreCase(estimate.getWard().getBoundaryType().getName())
            && estimate.getWard().getParent() != null && estimate.getWard().getParent().getName() != null)
        document.add(makePara("Ward: " + estimate.getWard().getName() + " / Zone: "
                + estimate.getWard().getParent().getName(), Element.ALIGN_RIGHT));
    else if (estimate.getWard() != null
            && "Zone".equalsIgnoreCase(estimate.getWard().getBoundaryType().getName())
            && estimate.getWard().getParent() != null && estimate.getWard().getParent().getName() != null)
        document.add(makePara("Zone: " + estimate.getWard().getName() + " / Region: "
                + estimate.getWard().getParent().getName(), Element.ALIGN_RIGHT));
    else if (estimate.getWard() != null)
        document.add(makePara("Jurisdiction: " + estimate.getWard().getName() + "("
                + estimate.getWard().getBoundaryType().getName() + ")", Element.ALIGN_RIGHT));
    document.add(spacer());
}

From source file:org.egov.works.web.actions.estimate.EstimatePDFGenerator.java

License:Open Source License

private void addZoneYearHeaderWithOutEstimateNo(final AbstractEstimate estimate,
        final CFinancialYear financialYear) throws DocumentException {
    final PdfPTable headerTable = new PdfPTable(2);
    headerTable.setWidthPercentage(100);
    headerTable.setWidths(new float[] { 1f, 1f });
    Paragraph financialYearPara = new Paragraph();
    if (financialYear != null)
        financialYearPara = makePara("Budget Year: " + financialYear.getFinYearRange(), Element.ALIGN_RIGHT);
    addRow(headerTable, false, new Paragraph(), financialYearPara);
    document.add(headerTable);/*from   w  w  w. jav  a2  s . c  om*/
    if (estimate.getWard() != null && "Ward".equalsIgnoreCase(estimate.getWard().getBoundaryType().getName())
            && estimate.getWard().getParent() != null && estimate.getWard().getParent().getName() != null)
        document.add(makePara("Ward: " + estimate.getWard().getName() + " / Zone: "
                + estimate.getWard().getParent().getName(), Element.ALIGN_RIGHT));
    else if (estimate.getWard() != null
            && "Zone".equalsIgnoreCase(estimate.getWard().getBoundaryType().getName())
            && estimate.getWard().getParent() != null && estimate.getWard().getParent().getName() != null)
        document.add(makePara("Zone: " + estimate.getWard().getName() + " / Region: "
                + estimate.getWard().getParent().getName(), Element.ALIGN_RIGHT));
    else if (estimate.getWard() != null)
        document.add(makePara("Jurisdiction: " + estimate.getWard().getName() + "("
                + estimate.getWard().getBoundaryType().getName() + ")", Element.ALIGN_RIGHT));
    document.add(spacer());
}

From source file:org.egov.works.web.actions.measurementbook.MeasurementBookPDFGenerator.java

License:Open Source License

private PdfPTable createApprovalDetailsTable(final MBHeader mbHeader) throws DocumentException {
    try {//  w  ww  .  j a v a 2 s  .c om
        final PdfPTable approvaldetailsTable = new PdfPTable(5);
        approvaldetailsTable.setWidthPercentage(100);
        approvaldetailsTable.setWidths(new float[] { 2f, 1f, 1f, 1.5f, 2f });
        addRow(approvaldetailsTable, true, makePara(8, pdfLabel.get("mbpdf.aprvalstep")),
                centerPara(8, pdfLabel.get("mbpdf.name")), centerPara(8, pdfLabel.get("mbpdf.designation")),
                centerPara(8, pdfLabel.get("mbpdf.aprvdon")), centerPara(8, pdfLabel.get("mbpdf.remarks")));
        List<StateHistory<Position>> history = null;
        String code = "";
        if (mbHeader.getCurrentState() != null && mbHeader.getCurrentState().getHistory() != null)
            history = mbHeader.getStateHistory();
        if (history != null) {
            Collections.reverse(history);
            for (final StateHistory<Position> ad : history)
                if (!ad.getValue().equals("NEW") && !ad.getValue().equals("END")) {
                    String nextAction = "";
                    if (ad.getNextAction() != null)
                        nextAction = ad.getNextAction();
                    Long positionId = null;
                    String desgName = null;
                    DeptDesig deptdesig = null;
                    positionId = ad.getOwnerPosition().getId();
                    deptdesig = ad.getOwnerPosition().getDeptDesig();
                    desgName = deptdesig.getDesignation().getName();
                    final PersonalInformation emp = employeeService.getEmpForPositionAndDate(
                            ad.getCreatedDate(), Integer.parseInt(positionId.toString()));
                    code = ad.getValue();
                    final EgwStatus status = (EgwStatus) getPersistenceService()
                            .find("from EgwStatus where moduletype=? and code=?", "MBHeader", code);
                    String state = status.getDescription();
                    if (!nextAction.equalsIgnoreCase(""))
                        state = status.getDescription() + " - " + nextAction;
                    addRow(approvaldetailsTable, true, makePara(8, state), makePara(8, emp.getEmployeeName()),
                            makePara(8, desgName), makePara(8, getDateInFormat(ad.getCreatedDate().toString())),
                            rightPara(8, ad.getComments()));
                }
        }
        return approvaldetailsTable;
    } catch (final Exception e) {
        throw new DocumentException("Exception occured while getting approval details " + e);
    }
}

From source file:org.egov.works.web.actions.measurementbook.MeasurementBookPDFGenerator.java

License:Open Source License

private PdfPTable createMbTable() throws DocumentException {
    PdfPTable mbTable;
    if (includeRevisionTypeColumn) {
        mbTable = new PdfPTable(12);
        mbTable.setWidths(new float[] { 1f, 1.5f, 4f, 1.4f, 1.9f, 1.6f, 1.4f, 1.8f, 1.9f, 1.9f, 1.9f, 1.6f });
    } else {//ww w .j a  va2s  .co m
        mbTable = new PdfPTable(11);
        mbTable.setWidths(new float[] { 1f, 1.5f, 4f, 1.9f, 1.6f, 1.4f, 1.8f, 1.9f, 1.9f, 1.9f, 1.6f });
    }
    // main table
    mbTable.setWidthPercentage(100);

    try {
        final Font font = new Font();
        font.setSize(8);
        mbTable.getDefaultCell().setPadding(3);
        mbTable.getDefaultCell().setBorderWidth(1);
        mbTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
        mbTable.addCell(new PdfPCell(new Phrase(pdfLabel.get("mbpdf.slno"), font)));
        mbTable.addCell(new PdfPCell(new Phrase(pdfLabel.get("mbpdf.schno"), font)));
        mbTable.addCell(new PdfPCell(new Phrase(pdfLabel.get("mbpdf.descofwork"), font)));
        if (includeRevisionTypeColumn)
            mbTable.addCell(new PdfPCell(new Phrase(pdfLabel.get("mbpdf.revisiontype"), font)));
        mbTable.addCell(new PdfPCell(new Phrase(pdfLabel.get("mbpdf.completedmeasurement"), font)));
        mbTable.addCell(new PdfPCell(new Phrase(pdfLabel.get("mbpdf.unitrate"), font)));
        mbTable.addCell(new PdfPCell(new Phrase(pdfLabel.get("mbpdf.unit"), font)));
        mbTable.addCell(new PdfPCell(new Phrase(pdfLabel.get("mbpdf.totalvalueofcomplwork"), font)));

        // start creating tables for previous measurements
        final PdfPTable previousMbTable = createPreviousMbTable();
        final PdfPCell previousMbCell = new PdfPCell(previousMbTable);
        previousMbCell.setColspan(2);
        mbTable.addCell(previousMbCell);

        mbTable.addCell(new PdfPCell(new Phrase(pdfLabel.get("mbpdf.currentmeasurement"), font)));

        // last column
        mbTable.addCell(new PdfPCell(new Phrase(pdfLabel.get("mbpdf.currentcost"), font)));
    } catch (final RuntimeException e) {
        throw new ApplicationRuntimeException(MEASUREMENTBOOK_PDF_ERROR, e);
    }
    return mbTable;
}

From source file:org.egov.works.web.actions.tender.TenderNegotiationPDFGenerator.java

License:Open Source License

private PdfPTable createApprovalDetailsTable(final TenderResponse tenderResponse) throws DocumentException {
    try {//from w w w .  ja va  2 s.  c o  m
        final PdfPTable approvaldetailsTable = new PdfPTable(5);
        approvaldetailsTable.setWidthPercentage(100);
        approvaldetailsTable.setWidths(new float[] { 1f, 1f, 2f, 1.5f, 2f });
        addRow(approvaldetailsTable, true, makePara(pdfLabel.get("tenderNegotiationpdf.aprvalstep")),
                centerPara(pdfLabel.get("tenderNegotiationpdf.name")),
                centerPara(pdfLabel.get("tenderNegotiationpdf.designation")),
                centerPara(pdfLabel.get("tenderNegotiationpdf.aprvdon")),
                centerPara(pdfLabel.get("tenderNegotiationpdf.remarks")));
        List<StateHistory<Position>> history = null;
        if (tenderResponse.getCurrentState() != null && tenderResponse.getCurrentState().getHistory() != null)
            history = tenderResponse.getStateHistory();
        if (history != null) {
            Collections.reverse(history);
            StateHistory<Position> previous = null;
            for (final StateHistory<Position> ad : history) {
                if (!ad.getValue().equals("NEW") && !ad.getValue().equals("APPROVAL_PENDING")
                        && !ad.getValue().equals("END") && previous != null) {
                    final EgwStatus status = (EgwStatus) getPersistenceService()
                            .find("from EgwStatus where code=?", ad.getValue());
                    final PersonalInformation emp = employeeService.getEmpForPositionAndDate(
                            ad.getCreatedDate(),
                            Integer.parseInt(previous.getOwnerPosition().getId().toString()));
                    addRow(approvaldetailsTable, true, makePara(status.getDescription()),
                            makePara(emp.getEmployeeName()),
                            makePara(previous.getOwnerPosition().getDeptDesig().getDesignation().getName()),
                            makePara(getDateInFormat(ad.getCreatedDate().toString())),
                            rightPara(ad.getComments()));
                }
                previous = ad;
            }
        }
        return approvaldetailsTable;
    } catch (final Exception e) {
        throw new DocumentException("Exception occured while getting approval details " + e);
    }
}

From source file:org.egov.works.web.actions.tender.TenderNegotiationPDFGenerator.java

License:Open Source License

/**
 * create negotiation table main table//from   ww  w  . jav a2 s  . c o  m
 *
 * @param tenderResponse
 * @return
 * @throws DocumentException
 * @throws ApplicationException
 */
private PdfPTable createNegotiationTable(final TenderResponse tenderResponse, final Contractor contractor)
        throws DocumentException {
    final PdfPTable negotiationTable = new PdfPTable(13);
    negotiationTable.setWidthPercentage(100);
    negotiationTable.setWidths(
            new float[] { 0.5f, 1f, 3.6f, 1.5f, 1.1f, 0.9f, 1.5f, 1.7f, 1.7f, 1.7f, 1.7f, 1.7f, 1.7f });
    try {
        negotiationTable.getDefaultCell().setPadding(5);
        negotiationTable.getDefaultCell().setBorderWidth(1);
        negotiationTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
        negotiationTable.addCell(pdfLabel.get("tenderNegotiationpdf.slno"));
        negotiationTable.addCell(pdfLabel.get("tenderNegotiationpdf.scheduleno"));
        negotiationTable.addCell(pdfLabel.get("tenderNegotiationpdf.descofwork"));
        negotiationTable.addCell(pdfLabel.get("tenderNegotiationpdf.quantity"));

        /**
         * start creating tables for Estimate, before negotion, after negotiation and marketRate
         */

        final PdfPTable estimateTable = createAsPerEstimateTable(tenderResponse);
        estimateTable.setWidths(new float[] { 0.45f, 0.37f, 0.62f });
        final PdfPCell estimateCell = new PdfPCell(estimateTable);
        estimateCell.setColspan(3);
        negotiationTable.addCell(estimateCell);

        final PdfPTable beforeNegotiationTable = createBeforeNegotiationTable(tenderResponse);
        final PdfPCell beforeNegotiationCell = new PdfPCell(beforeNegotiationTable);
        beforeNegotiationCell.setColspan(2);
        negotiationTable.addCell(beforeNegotiationCell);

        final PdfPTable afterNegotiationTable = createAfterNegotiationTable(tenderResponse);
        final PdfPCell afterNegotiationCell = new PdfPCell(afterNegotiationTable);
        afterNegotiationCell.setColspan(2);
        negotiationTable.addCell(afterNegotiationCell);
        final PdfPTable marketRateTable = createMarketRateTable(tenderResponse);
        final PdfPCell marketRateCell = new PdfPCell(marketRateTable);
        marketRateCell.setColspan(2);
        negotiationTable.addCell(marketRateCell);
        /**
         * end creating tables for before negotion, after negotiation and marketRate
         */
        if (YES.equalsIgnoreCase(worksPackgeReq))
            createNegotiationTableDataForWp(tenderResponse, negotiationTable, contractor);
        else
            createNegotiationTableData(tenderResponse, negotiationTable, contractor);
        createNegotiationTableFooter(negotiationTable);
        addRowFooter(negotiationTable);
        addTotalQuotedFooter(negotiationTable);
        addFinalRow(negotiationTable, tenderResponse);
    } catch (final DocumentException e) {
        throw new ApplicationRuntimeException(TENDER_PDF_ERROR, e);
    }
    return negotiationTable;
}

From source file:org.egov.works.web.actions.tender.TenderNegotiationPDFGenerator.java

License:Open Source License

/**
 * create contractor table/*from  w  ww.j a va2  s  .c  om*/
 *
 * @param tenderResponse
 * @return
 * @throws DocumentException
 * @throws ApplicationException
 */
private PdfPTable createContractorTable(final TenderResponse tenderResponse) throws DocumentException {
    final PdfPTable contractorTable = new PdfPTable(3);
    contractorTable.setWidthPercentage(100);
    contractorTable.setWidths(new float[] { 1.6f, 3.6f, 6.6f });
    try {
        contractorTable.getDefaultCell().setPadding(5);
        contractorTable.getDefaultCell().setBorderWidth(1);
        contractorTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
        contractorTable.addCell(pdfLabel.get("tenderNegotiationpdf.contractorcode"));
        contractorTable.addCell(pdfLabel.get("tenderNegotiationpdf.contractorname"));
        contractorTable.addCell(pdfLabel.get("tenderNegotiationpdf.contractoraddress"));

        for (final TenderResponseContractors tenderResponseContractors : tenderResponse
                .getTenderResponseContractors()) {
            contractorTable.addCell(centerPara(tenderResponseContractors.getContractor().getCode()));
            contractorTable.addCell(centerPara(tenderResponseContractors.getContractor().getName()));
            contractorTable
                    .addCell(centerPara(tenderResponseContractors.getContractor().getCorrespondenceAddress()));
        }

    } catch (final Exception e) {
        LOGGER.info("Exception while creating contractor table" + e);
    }
    return contractorTable;
}

From source file:org.emmanet.controllers.PdfView.java

License:Apache License

@Override
protected void buildPdfDocument(Map map, Document doc, PdfWriter writer, HttpServletRequest request,
        HttpServletResponse response) throws Exception {
    if (map.get("WebRequestsDAO") != null && request.getParameter("type").equals("req")) {
        WebRequestsDAO wrd = new WebRequestsDAO();
        WebRequests wr = new WebRequests();
        wrd = (WebRequestsDAO) map.get("WebRequestsDAO");

        if (wrd.getRegister_interest() != null) {
            if (wrd.getRegister_interest().equals("1")) {
                pdfTitle = "EMMA Strain Interest Registration Form";
                pdfConditions = false;/*  w  ww .  j ava2  s. c o m*/
            } else if (wrd.getRegister_interest().equals("0")) {
                pdfTitle = "EMMA Mutant Request Form";
                pdfConditions = true;
            }
        }

        Paragraph pHead = new Paragraph(pdfTitle + "\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11));
        pHead.setAlignment(Element.ALIGN_CENTER);
        doc.add(pHead);
        doc.add(new Paragraph(pdfTitle + "\nRequest ID:" + wrd.getId_req() + "\n\n",
                FontFactory.getFont(FontFactory.HELVETICA_BOLD, 20)));
        Paragraph pSubHead = new Paragraph(
                "Following data have been submitted to EMMA on " + wrd.getTimestamp(),
                FontFactory.getFont(FontFactory.HELVETICA, 11));
        pSubHead.setAlignment(Element.ALIGN_CENTER);

        doc.add(pSubHead);
        doc.add(Chunk.NEWLINE);
        // Space padding underline
        Chunk underlined = new Chunk(
                "                                                                                     "
                        + "                                                                       ");
        underlined.setUnderline(new Color(0x00, 0x00, 0x00), 0.0f, 0.2f, 16.0f, 0.0f,
                PdfContentByte.LINE_CAP_BUTT);//Black line
        doc.add(underlined);
        Font font = FontFactory.getFont(FontFactory.HELVETICA_BOLD, 11);
        // Set table cell widths equiv. to 25% and 75%
        float[] widths = { 0.25f, 0.75f };
        PdfPTable table = new PdfPTable(widths);
        table.setWidthPercentage(100);

        PdfPCell cell = new PdfPCell(new Paragraph("Scientist\n\n", font));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);
        table.addCell("Title");
        table.addCell("" + wrd.getSci_title());
        table.addCell("Firstname");
        table.addCell("" + wrd.getSci_firstname());
        table.addCell("Surname");
        table.addCell("" + wrd.getSci_surname());
        table.addCell("E-mail");
        table.addCell("" + wrd.getSci_e_mail());
        table.addCell("Phone");
        table.addCell("" + wrd.getSci_phone());
        table.addCell("Fax");
        table.addCell("" + wrd.getSci_fax());
        PdfPCell cellShip = new PdfPCell(new Paragraph("\nShipping Contact\n\n", font));
        cellShip.setColspan(2);
        cellShip.setBorder(0);
        table.addCell(cellShip);

        table.addCell("Title");
        table.addCell("" + wrd.getCon_title());
        table.addCell("Firstname");
        table.addCell("" + wrd.getCon_firstname());
        table.addCell("Surname");
        table.addCell("" + wrd.getCon_surname());
        table.addCell("E-mail");
        table.addCell("" + wrd.getCon_e_mail());
        table.addCell("Phone");
        table.addCell("" + wrd.getCon_phone());
        table.addCell("Fax");
        table.addCell("" + wrd.getCon_fax());
        table.addCell("Institution");
        table.addCell("" + wrd.getCon_institution());
        table.addCell("Department");
        table.addCell("" + wrd.getCon_dept());
        table.addCell("Address Line 1");
        table.addCell("" + wrd.getCon_addr_1());
        table.addCell("Address Line 2");
        table.addCell("" + wrd.getCon_addr_2());
        table.addCell("County/province");
        table.addCell("" + wrd.getCon_province());
        table.addCell("Town");
        table.addCell("" + wrd.getCon_town());
        table.addCell("Postcode");
        table.addCell("" + wrd.getCon_postcode());
        table.addCell("Country");
        table.addCell("" + wrd.getCon_country());

        if (!wrd.getRegister_interest().equals("1")) {
            //webrequest is not a roi so these were set above so send them to pdf
            PdfPCell cellBill = new PdfPCell(new Paragraph("\nBilling Details\n\n", font));
            cellBill.setColspan(2);
            cellBill.setBorder(0);
            table.addCell(cellBill);

            table.addCell("VAT reference");
            table.addCell("" + wrd.getBil_vat());
            table.addCell("Purchase Order Number");
            table.addCell("" + wrd.getPO_ref());
            table.addCell("Title");
            table.addCell("" + wrd.getBil_title());
            table.addCell("Firstname");
            table.addCell("" + wrd.getBil_firstname());
            table.addCell("Surname");
            table.addCell("" + wrd.getBil_surname());
            table.addCell("E-mail");
            table.addCell("" + wrd.getBil_e_mail());
            table.addCell("Phone");
            table.addCell("" + wrd.getBil_phone());
            table.addCell("Fax");
            table.addCell("" + wrd.getBil_fax());
            table.addCell("Institution");
            table.addCell("" + wrd.getBil_institution());
            table.addCell("Department");
            table.addCell("" + wrd.getBil_dept());
            table.addCell("Address Line 1");
            table.addCell("" + wrd.getBil_addr_1());
            table.addCell("Address Line 2");
            table.addCell("" + wrd.getBil_addr_2());
            table.addCell("County/province");
            table.addCell("" + wrd.getBil_province());
            table.addCell("Town");
            table.addCell("" + wrd.getBil_town());
            table.addCell("Postcode");
            table.addCell("" + wrd.getBil_postcode());
            table.addCell("Country");
            table.addCell("" + wrd.getBil_country());

            // TODO add europhenome and wtsi_mouse_portal info
        }

        PdfPCell cellStrain = new PdfPCell(new Paragraph("\nStrain Details\n\n", font));
        cellStrain.setColspan(2);
        cellStrain.setBorder(0);

        table.addCell(cellStrain);
        table.addCell("Strain ID");
        table.addCell("" + wrd.getStrain_id());
        table.addCell("Strain name");
        //new String (wrd.getStrain_name().getBytes("UTF-8"));
        //table.addCell("" + wrd.getStrain_name());
        table.addCell("" + new String(wrd.getStrain_name().getBytes("UTF-8")));
        table.addCell("Common Name(s)");
        table.addCell("" + wrd.getCommon_name_s());

        if (wrd.getReq_material() != null) {
            PdfPCell cellMaterial = new PdfPCell(new Paragraph("\nRequested Material\n\n", font));
            cellMaterial.setColspan(2);
            cellMaterial.setBorder(0);

            table.addCell(cellMaterial);
            table.addCell("Material");
            table.addCell("" + wrd.getReq_material());
        }

        if (wrd.getLive_animals() != null) {
            table.addCell("Live Animals");
            table.addCell("Selected");
        }

        if (wrd.getFrozen_emb() != null) {
            table.addCell("Frozen Embryos");
            table.addCell("Selected");
        }

        if (wrd.getFrozen_spe() != null) {
            table.addCell("Frozen Sperm");
            table.addCell("Selected");
        }

        if (pdfConditions) {
            String text = "";
            String text1 = "";
            String text2 = "";
            String header = "";
            String header1 = "";
            String header2 = "";
            if (wrd.getApplication_type().equals("request_only")) {
                text = new StringBuilder().append(text).append(
                        "\nYou have indicated that you have read the conditions and agree to pay the transmittal fee "
                                + "plus shipping costs.")
                        .toString();

                header = new StringBuilder().append(header).append("\nStandard request\n").toString();

            } else if (!wrd.getApplication_type().equals("request_only")) {
                header1 = new StringBuilder().append(header1)
                        .append("\nApplication for Transnational Access Activity").toString();
                if (wrd.getApplication_type().equals("ta_only")) {
                    text1 = new StringBuilder().append(text1).append(
                            "\nYou have indicated that you have read the conditions and have applied for free of charge TA only. "
                                    + "In the case of the TA application being rejected the request process will be terminated.")
                            .toString();
                    header1 = new StringBuilder().append(header1).append(" (TA Option B)\n").toString();
                } else {
                    text1 = new StringBuilder().append(text1).append(
                            "\nYou have indicated that you have read the conditions and have applied for free of charge TA "
                                    + "and have agreed to pay the service charge plus shipping cost if the TA application is rejected.")
                            .toString();
                    header1 = new StringBuilder().append(header1).append(" (TA Option A)\n").toString();
                }

                header2 = new StringBuilder().append(header2).append(
                        "\n\nDescription of project (1/2 page) involving requested EMMA mouse mutant resource. "
                                + "The project description will be used by the Evaluation Committee for selection of applicants:")
                        .toString();
            }

            if (!wrd.getApplication_type().equals("request_only")) {
                //  table.addCell("" + model.get("ta_proj_desc"));
                text2 = new StringBuilder().append(text2).append("\n\n ").append(wrd.getProject_description())
                        .toString();
            }

            if (!wrd.getApplication_type().equals("request_only")) {
                //we have a ta header and text to add
                PdfPCell cellConditions1 = new PdfPCell(new Paragraph(header1, font));

                cellConditions1.setColspan(2);
                cellConditions1.setBorder(0);
                table.addCell(cellConditions1);

                PdfPCell cellConditions2 = new PdfPCell(new Paragraph(text1));

                cellConditions2.setColspan(2);
                cellConditions2.setBorder(0);
                table.addCell(cellConditions2);

                PdfPCell cellConditions3 = new PdfPCell(new Paragraph(header2, font));

                cellConditions3.setColspan(2);
                cellConditions3.setBorder(0);
                table.addCell(cellConditions3);

                PdfPCell cellConditions4 = new PdfPCell(new Paragraph(text2));

                cellConditions4.setColspan(2);
                cellConditions4.setBorder(0);
                table.addCell(cellConditions4);

            } else {

                PdfPCell cellConditions = new PdfPCell(new Paragraph(header, font));
                cellConditions.setColspan(2);
                cellConditions.setBorder(0);
                table.addCell(cellConditions);

                PdfPCell cellConditionsTxt = new PdfPCell(new Paragraph(text));
                cellConditionsTxt.setColspan(2);
                cellConditionsTxt.setBorder(0);
                table.addCell(cellConditionsTxt);
            }
        }
        doc.add(table);
    }

    if (map.get("StrainsDAO") != null && request.getParameter("type").equals("sub")) {
        StrainsDAO sd;
        StrainsManager sm = new StrainsManager();
        PeopleDAO pd;
        PeopleDAO subPDAO = new PeopleDAO();
        PeopleManager pm = new PeopleManager();
        BibliosManager bm = new BibliosManager();

        sd = (StrainsDAO) map.get("StrainsDAO");
        pd = pm.getPerson(sd.getPer_id_per_contact());//For shipping details

        if (sd.getPer_id_per_sub() != null) {
            subPDAO = pm.getPerson(sd.getPer_id_per_sub());
        }

        //RETRIEVE ASSOCIATED SUBMISSION FILES IF PRESENT

        final String submissionID = sd.getSub_id_sub();
        System.out.println("SUBMISSION ID IS::" + submissionID);

        List assocFilesADDITIONAL = new ArrayList();
        List assocFilesSANITARY = new ArrayList();
        List assocFilesCHARACTERISATION = new ArrayList();

        File dir = new File(SUBFORMUPLOAD);
        File[] files;
        files = dir.listFiles(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                //only add to list if submission id is conatined within file name (which includes path and file name)
                if (submissionID != null && name.startsWith(submissionID)) {
                    return name.toLowerCase().endsWith(".pdf");
                }
                return false;
            }
        });
        System.out.println("Files size is::" + files.length);
        if (files != null && submissionID != null) {
            for (int i = 0; i < files.length; i++) {
                System.out.println("FILEname VALUE " + i + "==" + files[i].getName());
                String file = files[i].getName();
                if (file.startsWith(submissionID) && file.contains((CharSequence) "ADDITIONAL")) {
                    assocFilesADDITIONAL.add(file);
                    System.out.println("ADDITIONAL file " + file);
                } else if (file.startsWith(submissionID) && file.contains((CharSequence) "SANITARYSTATUS")) {
                    assocFilesSANITARY.add(file);
                    System.out.println("SANITARY file " + file);
                } else {
                    assocFilesCHARACTERISATION.add(file);
                    System.out.println("CHARACTERISATION file " + file);
                }
            }
        }

        ServletContext servletContext = request.getSession().getServletContext();
        URL infrafrontierIconURL = servletContext.getResource("/images/infrafrontier/icon/footerlogo.jpg");
        logger.debug("infrafrontierIconURL = " + infrafrontierIconURL);
        URL emmaIconURL = servletContext.getResource("/images/infrafrontier/icon/emma-logo-soft.png");
        logger.debug("emmaIconURL = " + emmaIconURL);
        Image infrafrontierIcon = Image.getInstance(infrafrontierIconURL);
        Image emmaIcon = Image.getInstance(emmaIconURL);

        pdfTitle = "EMMA Mutant Submission Form";
        doc.add(new Chunk(infrafrontierIcon, 0, 0));
        doc.add(new Chunk(emmaIcon, 320, 0));
        doc.add(Chunk.NEWLINE);
        doc.add(Chunk.NEWLINE);
        Paragraph paragraph = new Paragraph(pdfTitle, FontFactory.getFont(FontFactory.HELVETICA_BOLD, 20));
        paragraph.setAlignment(Element.ALIGN_CENTER);
        doc.add(paragraph);

        float[] widths = { 0.25f, 0.75f };
        PdfPTable table = new PdfPTable(widths);
        table.setWidthPercentage(100);
        PdfPCell cell;

        Paragraph pSubHead = new Paragraph(
                "\nThe Following data have been submitted to EMMA on " + sd.getArchiveDAO().getSubmitted(),
                FontFactory.getFont(FontFactory.HELVETICA, 11));
        pSubHead.setAlignment(Element.ALIGN_CENTER);

        doc.add(pSubHead);
        doc.add(Chunk.NEWLINE);
        // Space padding underline
        Chunk underlined = new Chunk(
                "                                                                                     "
                        + "                                                                       ");
        underlined.setUnderline(new Color(0x00, 0x00, 0x00), 0.0f, 0.2f, 16.0f, 0.0f,
                PdfContentByte.LINE_CAP_BUTT);//Black line
        doc.add(underlined);
        Font font = FontFactory.getFont(FontFactory.HELVETICA_BOLD, 11);
        table = new PdfPTable(widths);
        table.setWidthPercentage(100);

        // Genotype preparation - strain name [actually, synonym] and description
        // Jira request EMMA-586 - use strain.name instead of synonym (requested by Sabine)
        String strainName = sd.getName();
        pSubHead = new Paragraph(strainName + " / " + sd.getEmma_id() + "\n\n",
                FontFactory.getFont(FontFactory.HELVETICA_BOLD, 11));
        pSubHead.setAlignment(Element.ALIGN_CENTER);
        doc.add(pSubHead);

        // Submitter
        cell = new PdfPCell(new Paragraph("\nSubmitter (Steps 1 and 2 of 11)\n\n", font));
        cell.setColspan(2);
        cell.setBorder(0);
        if (sd.getPer_id_per_sub() != null) {
            table.addCell(cell);
            table.addCell("Title");
            table.addCell("" + subPDAO.getTitle());
            table.addCell("Firstname");
            table.addCell("" + subPDAO.getFirstname());
            table.addCell("Surname");
            table.addCell("" + subPDAO.getSurname());
            table.addCell("E-mail");
            table.addCell("" + subPDAO.getEmail());
            table.addCell("Phone");
            table.addCell("" + subPDAO.getPhone());
            table.addCell("Fax");
            table.addCell("" + subPDAO.getFax());
        }
        if (subPDAO.getLabsDAO() != null) {
            table.addCell("Institution");
            table.addCell("" + subPDAO.getLabsDAO().getName());
            table.addCell("Department");
            table.addCell("" + subPDAO.getLabsDAO().getDept());
            table.addCell("Address Line 1");
            table.addCell("" + subPDAO.getLabsDAO().getAddr_line_1());
            table.addCell("Address Line 2");
            table.addCell("" + subPDAO.getLabsDAO().getAddr_line_2());
            table.addCell("County/province");
            table.addCell("" + subPDAO.getLabsDAO().getProvince());
            table.addCell("Town");
            table.addCell("" + subPDAO.getLabsDAO().getTown());
            table.addCell("Postcode");
            table.addCell("" + subPDAO.getLabsDAO().getPostcode());
            table.addCell("Country");
            table.addCell("" + subPDAO.getLabsDAO().getCountry());
        }
        doc.add(table);
        doc.add(Chunk.NEWLINE);
        doc.add(Chunk.NEWLINE);
        doc.add(underlined);
        table = new PdfPTable(widths);
        table.setWidthPercentage(100);

        // Producer
        cell = new PdfPCell(new Paragraph("Producer (Step 3 of 11)\n\n", font));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        table.addCell("Title");
        table.addCell("" + sd.getPeopleDAO().getTitle());
        table.addCell("Firstname");
        table.addCell("" + sd.getPeopleDAO().getFirstname());
        table.addCell("Surname");
        table.addCell("" + sd.getPeopleDAO().getSurname());
        table.addCell("E-mail");
        table.addCell("" + sd.getPeopleDAO().getEmail());
        table.addCell("Phone");
        table.addCell("" + sd.getPeopleDAO().getPhone());
        table.addCell("Fax");
        table.addCell("" + sd.getPeopleDAO().getFax());
        table.addCell("Institution");
        table.addCell("" + sd.getPeopleDAO().getLabsDAO().getName());
        table.addCell("Department");
        table.addCell("" + sd.getPeopleDAO().getLabsDAO().getDept());
        table.addCell("Address Line 1");
        table.addCell("" + sd.getPeopleDAO().getLabsDAO().getAddr_line_1());
        table.addCell("Address Line 2");
        table.addCell("" + sd.getPeopleDAO().getLabsDAO().getAddr_line_2());
        table.addCell("County/province");
        table.addCell("" + sd.getPeopleDAO().getLabsDAO().getProvince());
        table.addCell("Town");
        table.addCell("" + sd.getPeopleDAO().getLabsDAO().getTown());
        table.addCell("Postcode");
        table.addCell("" + sd.getPeopleDAO().getLabsDAO().getPostcode());
        table.addCell("Country");
        table.addCell("" + sd.getPeopleDAO().getLabsDAO().getCountry());
        Integer id_ilar = Utils.tryParseInt(sd.getPeopleDAO().getId_ilar());
        if ((id_ilar != null) && (id_ilar.intValue() > 0)) { // If there is a valid ILAR, display it.
            table.addCell("ILAR");
            table.addCell(sd.getPeopleDAO().getIlarDAO().getLabcode());
        }

        doc.add(table);
        doc.add(Chunk.NEWLINE);
        doc.add(Chunk.NEWLINE);
        doc.add(underlined);
        table = new PdfPTable(widths);
        table.setWidthPercentage(100);

        // Shipper
        cell = new PdfPCell(new Paragraph("\nShipper (Step 4 of 11)\n\n", font));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        table.addCell("Title");
        table.addCell("" + pd.getTitle());
        table.addCell("Firstname");
        table.addCell("" + pd.getFirstname());
        table.addCell("Surname");
        table.addCell("" + pd.getSurname());
        table.addCell("E-mail");
        table.addCell("" + pd.getEmail());
        table.addCell("Phone");
        table.addCell("" + pd.getPhone());
        table.addCell("Fax");
        table.addCell("" + pd.getFax());
        table.addCell("Institution");
        table.addCell("" + pd.getLabsDAO().getName());
        table.addCell("Department");
        table.addCell("" + pd.getLabsDAO().getDept());
        table.addCell("Address Line 1");
        table.addCell("" + pd.getLabsDAO().getAddr_line_1());
        table.addCell("Address Line 2");
        table.addCell("" + pd.getLabsDAO().getAddr_line_2());
        table.addCell("County/province");
        table.addCell("" + pd.getLabsDAO().getProvince());
        table.addCell("Town");
        table.addCell("" + pd.getLabsDAO().getTown());
        table.addCell("Postcode");
        table.addCell("" + pd.getLabsDAO().getPostcode());
        table.addCell("Country");
        table.addCell("" + pd.getLabsDAO().getCountry());

        doc.add(table);
        doc.add(Chunk.NEWLINE);
        doc.add(Chunk.NEWLINE);
        doc.add(underlined);
        table = new PdfPTable(widths);
        table.setWidthPercentage(100);

        String origBgName = sd.getBackgroundDAO().getName();

        // Genotype
        cell = new PdfPCell(new Paragraph("\nGenotype (Step 5 of 11)\n\n", font));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        table.addCell("Strain Name");
        table.addCell("" + strainName);

        table.addCell("Genetic description");
        table.addCell("" + cleanNULLS(sd.getCharact_gen(), false));

        table.addCell("Current genetic background");
        table.addCell("" + cleanNULLS(origBgName, false));

        table.addCell("Number of generations backcrossed");
        table.addCell("" + cleanNULLS(sd.getGeneration(), false));

        table.addCell("Number of generations sib-mated");
        table.addCell("" + cleanNULLS(sd.getSibmatings(), false));

        table.addCell("Breeding history");
        table.addCell("" + sd.getMaintenance());

        doc.add(table);
        doc.add(Chunk.NEWLINE);
        table = new PdfPTable(widths);
        table.setWidthPercentage(100);

        // Genotype - Mutations
        cell = new PdfPCell(new Paragraph("Mutation(s)\n\n", font));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);
        Set sMutations = sd.getMutationsStrainsDAO();

        StringBuffer sDom = new StringBuffer();
        for (Iterator it = sMutations.iterator(); it.hasNext();) {
            MutationsStrainsDAO mutDAO = (MutationsStrainsDAO) it.next();
            if (mutDAO.getMutationsDAO().getDominance() != null) {
                sDom = new StringBuffer(sDom).append(mutDAO.getMutationsDAO().getDominance().toString());
            }

            cell = new PdfPCell(
                    new Paragraph("Type: " + cleanNULLS(mutDAO.getMutationsDAO().getMain_type(), false),
                            FontFactory.getFont(FontFactory.HELVETICA, 11)));
            cell.setColspan(2);
            cell.setBorder(0);
            table.addCell(cell);

            cell = new PdfPCell(
                    new Paragraph("Subtype: " + cleanNULLS(mutDAO.getMutationsDAO().getSub_type(), false),
                            FontFactory.getFont(FontFactory.HELVETICA, 11)));
            cell.setColspan(2);
            cell.setBorder(0);
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph(
                    "Affected gene: " + cleanNULLS(
                            mutDAO.getMutationsDAO().getAllelesDAO().getGenesDAO().getName(), false),
                    FontFactory.getFont(FontFactory.HELVETICA, 11)));
            cell.setColspan(2);
            cell.setBorder(0);
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph(
                    "MGI of affected gene: " + cleanNULLS(
                            mutDAO.getMutationsDAO().getAllelesDAO().getGenesDAO().getMgi_ref(), false),
                    FontFactory.getFont(FontFactory.HELVETICA, 11)));
            cell.setColspan(2);
            cell.setBorder(0);
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph(
                    "Affected allele: " + cleanNULLS(mutDAO.getMutationsDAO().getAllelesDAO().getName(), false),
                    FontFactory.getFont(FontFactory.HELVETICA, 11)));
            cell.setColspan(2);
            cell.setBorder(0);
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph(
                    "MGI of affected allele: "
                            + cleanNULLS(mutDAO.getMutationsDAO().getAllelesDAO().getMgi_ref(), false),
                    FontFactory.getFont(FontFactory.HELVETICA, 11)));
            cell.setColspan(2);
            cell.setBorder(0);
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph(
                    "Affected chromosome: " + cleanNULLS(
                            mutDAO.getMutationsDAO().getAllelesDAO().getGenesDAO().getChromosome(), false),
                    FontFactory.getFont(FontFactory.HELVETICA, 11)));
            cell.setColspan(2);
            cell.setBorder(0);
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph(
                    "Dominance pattern: " + cleanNULLS(mutDAO.getMutationsDAO().getDominance(), false),
                    FontFactory.getFont(FontFactory.HELVETICA, 11)));
            cell.setColspan(2);
            cell.setBorder(0);
            table.addCell(cell);

            if (mutDAO.getMutationsDAO().getBackgroundDAO() != null) {
                cell = new PdfPCell(new Paragraph(
                        "Original genetic background: "
                                + cleanNULLS(mutDAO.getMutationsDAO().getBackgroundDAO().getName(), false),
                        FontFactory.getFont(FontFactory.HELVETICA, 11)));
            } else {
                cell = new PdfPCell(new Paragraph("\n"));
            }
            cell.setColspan(2);
            cell.setBorder(0);
            table.addCell(cell);

            if (mutDAO.getMutationsDAO().getCh_ano_name() != null) {
                cell = new PdfPCell(new Paragraph(
                        "Chromosomal anomaly name: "
                                + cleanNULLS(mutDAO.getMutationsDAO().getCh_ano_name(), false),
                        FontFactory.getFont(FontFactory.HELVETICA, 11)));
            } else {
                cell = new PdfPCell(new Paragraph("\n"));
            }
            cell.setColspan(2);
            cell.setBorder(0);
            table.addCell(cell);

            if (mutDAO.getMutationsDAO().getCh_ano_desc() != null) {
                cell = new PdfPCell(new Paragraph(
                        "Chromosomal anomaly description: "
                                + cleanNULLS(mutDAO.getMutationsDAO().getCh_ano_desc(), false),
                        FontFactory.getFont(FontFactory.HELVETICA, 11)));
            } else {
                cell = new PdfPCell(new Paragraph("\n"));
            }
            cell.setColspan(2);
            cell.setBorder(0);
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph(
                    "ES cell line used: " + cleanNULLS(mutDAO.getMutationsDAO().getTm_esline(), false) + "\n\n",
                    FontFactory.getFont(FontFactory.HELVETICA, 11)));
            cell.setColspan(2);
            cell.setBorder(0);
            table.addCell(cell);
        }

        /* END MUTATIONS*/

        doc.add(table);
        doc.add(Chunk.NEWLINE);
        doc.add(Chunk.NEWLINE);
        doc.add(underlined);
        table = new PdfPTable(widths);
        table.setWidthPercentage(100);

        cell = new PdfPCell(new Paragraph("\nONE mutant strain is defined by its specific set of mutation(s) "
                + "and its specific genetic background. Therefore strains with the same set of mutation(s) but different "
                + "backgrounds do require DISTINCT submission forms (i.e) ONE form for each background\n\n",
                font));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        doc.add(table);
        doc.add(Chunk.NEWLINE);
        doc.add(Chunk.NEWLINE);
        doc.add(underlined);
        table = new PdfPTable(widths);
        table.setWidthPercentage(100);

        // Phenotype
        cell = new PdfPCell(new Paragraph("\nPhenotype (Step 6 of 11)\n\n", font));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        cell = new PdfPCell(new Paragraph("Phenotypic description of homozygous mice\n\n", font));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);
        cell = new PdfPCell(new Paragraph("" + cleanNULLS(sd.getPheno_text(), true)));
        cell.setColspan(2);
        table.addCell(cell);

        cell = new PdfPCell(new Paragraph("\nPhenotypic description of heterozygous mice\n\n", font));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);
        cell = new PdfPCell(new Paragraph("" + cleanNULLS(sd.getPheno_text_hetero(), true)));
        cell.setColspan(2);
        table.addCell(cell);
        doc.add(table);

        doc.add(Chunk.NEWLINE);
        doc.add(Chunk.NEWLINE);
        doc.add(underlined);
        table = new PdfPTable(widths);
        table.setWidthPercentage(100);

        // References
        List bibliosStrains = bm.bibliosStrains(sd.getId_str());
        String acceptedString = ((!bibliosStrains.isEmpty()) && (bibliosStrains.size() > 0) ? "Yes/Accepted"
                : "No/Not known");
        cell = new PdfPCell(new Paragraph("\nReferences (Step 7 of 11)\n\n", font));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        cell = new PdfPCell(
                new Paragraph("Has this mouse mutant strain been published or accepted for publication? "
                        + acceptedString + "\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        for (Iterator it = bibliosStrains.iterator(); it.hasNext();) {
            BibliosStrainsDAO bsdao = (BibliosStrainsDAO) it.next();

            cell = new PdfPCell(
                    new Paragraph("Short description\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11)));
            cell.setColspan(2);
            cell.setBorder(0);
            table.addCell(cell);

            if (bsdao.getBibliosDAO().getNotes() != null) {
                cell = new PdfPCell(new Paragraph("" + cleanNULLS(bsdao.getBibliosDAO().getNotes(), true)));
            } else {
                cell = new PdfPCell(new Paragraph("\n"));
            }
            cell.setColspan(2);
            table.addCell(cell);

            String pubmedId = (bsdao.getBibliosDAO().getPubmed_id() == null ? ""
                    : bsdao.getBibliosDAO().getPubmed_id());
            cell = new PdfPCell(
                    new Paragraph("\nPubMed ID: " + pubmedId, FontFactory.getFont(FontFactory.HELVETICA, 11)));
            cell.setColspan(2);
            cell.setBorder(0);
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph("Title: " + bsdao.getBibliosDAO().getTitle(),
                    FontFactory.getFont(FontFactory.HELVETICA, 11)));
            cell.setColspan(2);
            cell.setBorder(0);
            table.addCell(cell);

            String authors = "Authors: " + bsdao.getBibliosDAO().getAuthor1();
            if (bsdao.getBibliosDAO().getAuthor2() != null)
                authors = authors + ", " + bsdao.getBibliosDAO().getAuthor2();
            cell = new PdfPCell(new Paragraph(authors, FontFactory.getFont(FontFactory.HELVETICA, 11)));
            cell.setColspan(2);
            cell.setBorder(0);
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph("Journal/Book: " + bsdao.getBibliosDAO().getJournal(),
                    FontFactory.getFont(FontFactory.HELVETICA, 11)));
            cell.setColspan(2);
            cell.setBorder(0);
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph("Year: " + cleanNULLS(bsdao.getBibliosDAO().getYear(), false),
                    FontFactory.getFont(FontFactory.HELVETICA, 11)));
            cell.setColspan(2);
            cell.setBorder(0);
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph("Volume: " + bsdao.getBibliosDAO().getVolume(),
                    FontFactory.getFont(FontFactory.HELVETICA, 11)));
            cell.setColspan(2);
            cell.setBorder(0);
            table.addCell(cell);

            cell = new PdfPCell(new Paragraph("Pages: " + bsdao.getBibliosDAO().getPages() + "\n\n",
                    FontFactory.getFont(FontFactory.HELVETICA, 11)));
            cell.setColspan(2);
            cell.setBorder(0);
            table.addCell(cell);
        }
        doc.add(table);

        doc.add(Chunk.NEWLINE);
        doc.add(Chunk.NEWLINE);
        doc.add(underlined);
        table = new PdfPTable(widths);
        table.setWidthPercentage(100);

        // Characterization
        cell = new PdfPCell(new Paragraph("\nCharacterization (Step 8 of 11)\n\n", font));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);
        cell = new PdfPCell(new Paragraph(
                "By genotyping \n" + "(e.g. sequence of PCR primers and PCR settings,Southern probes and "
                        + "hybridization protocol)\n\n",
                FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        if (sd.getResiduesDAO() != null) {
            cell = new PdfPCell(new Paragraph("" + cleanNULLS(sd.getResiduesDAO().getChar_genotyping(), true)));
        } else {
            cell = new PdfPCell(new Paragraph("\n"));
        }
        cell.setColspan(2);
        table.addCell(cell);

        cell = new PdfPCell(new Paragraph("\nBy phenotyping (e.g. coat colour)\n\n",
                FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        if (sd.getResiduesDAO() != null) {
            cell = new PdfPCell(
                    new Paragraph("" + cleanNULLS(sd.getResiduesDAO().getChar_phenotyping(), true)));
        } else {
            cell = new PdfPCell(new Paragraph("\n"));
        }
        cell.setColspan(2);
        table.addCell(cell);

        cell = new PdfPCell(new Paragraph("\nBy any other means that are not genotyping or phenotyping\n\n",
                FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        if (sd.getResiduesDAO() != null) {
            cell = new PdfPCell(new Paragraph("" + cleanNULLS(sd.getResiduesDAO().getChar_other(), true)));
        } else {
            cell = new PdfPCell(new Paragraph(""));
        }
        cell.setColspan(2);
        table.addCell(cell);

        //assocFilesCHARACTERISATION

        StringBuffer additionalCharacFiles = new StringBuffer("");
        for (Iterator it = assocFilesCHARACTERISATION.iterator(); it.hasNext();) {
            String fileName = it.next().toString();
            additionalCharacFiles = new StringBuffer(additionalCharacFiles).append("\n        ")
                    .append(fileName);
        }

        cell = new PdfPCell(
                new Paragraph("\nAdditional files uploaded:", FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        cell = new PdfPCell(
                new Paragraph("" + additionalCharacFiles, FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);
        doc.add(table);

        doc.add(Chunk.NEWLINE);
        doc.add(Chunk.NEWLINE);
        doc.add(Chunk.NEWLINE);
        doc.add(underlined);
        table = new PdfPTable(widths);
        table.setWidthPercentage(100);

        // Breeding
        cell = new PdfPCell(new Paragraph("\nBreeding (Step 9 of 11)\n\n", font));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        cell = new PdfPCell(
                new Paragraph("Are homozygous mice viable? " + cleanNULLS(sd.getMutant_viable(), false),
                        FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);
        cell = new PdfPCell(
                new Paragraph("Are homozygous mice fertile? " + cleanNULLS(sd.getMutant_fertile(), false),
                        FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        cell = new PdfPCell(new Paragraph(
                "Are heterozygous/hemizygous mice fertile? " + cleanNULLS(sd.getHethemi_fertile(), false),
                FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        cell = new PdfPCell(new Paragraph(
                "Are homozygous matings required? " + cleanNULLS(sd.getRequire_homozygous() + "\n\n", false),
                FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);
        if (sd.getResiduesDAO() != null) {
            cell = new PdfPCell(new Paragraph(
                    "" + cleanNULLS(sd.getResiduesDAO().getHomozygous_matings_required_text(), true)));
        } else {
            cell = new PdfPCell(new Paragraph(""));
        }
        cell.setColspan(2);
        table.addCell(cell);

        cell = new PdfPCell(new Paragraph(
                "\nAverage age of reproductive maturity (weeks): "
                        + cleanNULLS(sd.getResiduesDAO().getReproductive_maturity_age(), false),
                FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        cell = new PdfPCell(new Paragraph(
                "Average age of reproductive decline (months): "
                        + cleanNULLS(sd.getResiduesDAO().getReproductive_decline_age(), false),
                FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        cell = new PdfPCell(new Paragraph(
                "Average length of gestation (days): "
                        + cleanNULLS(sd.getResiduesDAO().getGestation_length(), false),
                FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        cell = new PdfPCell(new Paragraph(
                "Average number of pups at birth: " + cleanNULLS(sd.getResiduesDAO().getPups_at_birth(), false),
                FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        cell = new PdfPCell(new Paragraph(
                "Average number of pups surviving to weaning: "
                        + cleanNULLS(sd.getResiduesDAO().getPups_at_weaning(), false),
                FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        cell = new PdfPCell(new Paragraph(
                "Recommended weaning age (days): " + cleanNULLS(sd.getResiduesDAO().getWeaning_age(), false),
                FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        cell = new PdfPCell(new Paragraph(
                "Average number of litters in lifetime: "
                        + cleanNULLS(sd.getResiduesDAO().getLitters_in_lifetime(), false),
                FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        cell = new PdfPCell(new Paragraph(
                "Breeding performance: " + cleanNULLS(sd.getResiduesDAO().getBreeding_performance(), false),
                FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        cell = new PdfPCell(
                new Paragraph("Husbandry requirements:\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);
        if (sd.getResiduesDAO() != null) {
            cell = new PdfPCell(
                    new Paragraph("" + cleanNULLS(sd.getResiduesDAO().getAnimal_husbandry() + "\n", true)));
        } else {
            cell = new PdfPCell(new Paragraph(""));
        }
        cell.setColspan(2);
        table.addCell(cell);

        cell = new PdfPCell(
                new Paragraph("\nAre mice immunicompromised? " + cleanNULLS(sd.getImmunocompromised(), false),
                        FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        cell = new PdfPCell(
                new Paragraph("\nSanitary status:\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);
        if (sd.getResiduesDAO() != null) {
            cell = new PdfPCell(
                    new Paragraph("" + cleanNULLS(sd.getResiduesDAO().getCurrent_sanitary_status(), true)));
        } else {
            cell = new PdfPCell(new Paragraph("\n"));
        }
        cell.setColspan(2);

        table.addCell(cell);
        cell = new PdfPCell(
                new Paragraph("\nAnimal welfare:\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        cell = new PdfPCell(new Paragraph("" + cleanNULLS(sd.getResiduesDAO().getWelfare(), true)));
        cell.setColspan(2);
        table.addCell(cell);

        cell = new PdfPCell(
                new Paragraph("\nRemedial actions:\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        cell = new PdfPCell(new Paragraph("" + cleanNULLS(sd.getResiduesDAO().getRemedial_actions(), true)));
        cell.setColspan(2);
        table.addCell(cell);

        cell = new PdfPCell(new Paragraph("\nPlease note that under certain circumstances "
                + "(e.g.: long-term cryopreservation by sperm freezing) the strain's original genotype will not "
                + "always be available for future reconstitution of live colonies. Therefore, the original genetic "
                + "background cannot be guaranteed.\n\n", font));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        //assocFilesSANITARY

        StringBuffer additionalSanitaryFiles = new StringBuffer("");
        for (Iterator it = assocFilesSANITARY.iterator(); it.hasNext();) {
            String fileName = it.next().toString();
            additionalSanitaryFiles = new StringBuffer(additionalSanitaryFiles).append("\n        ")
                    .append(fileName);
        }

        cell = new PdfPCell(
                new Paragraph("\nAdditional files uploaded:", FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        cell = new PdfPCell(
                new Paragraph("" + additionalSanitaryFiles, FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);
        doc.add(table);

        doc.add(Chunk.NEWLINE);
        doc.add(Chunk.NEWLINE);
        doc.add(underlined);
        table = new PdfPTable(widths);
        table.setWidthPercentage(100);
        doc.add(table);

        // Research value
        cell = new PdfPCell(new Paragraph("\n\n\nResearch value (Step 10 of 11)\n\n", font));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        cell = new PdfPCell(new Paragraph(
                "Does this strain model a human condition or disease? "
                        + cleanNULLS(sd.getHuman_model(), false),
                FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        Strains_OmimManager strainsOmimManager = new Strains_OmimManager();
        List<Strains_OmimDAO> strains_omimDAOList = strainsOmimManager.findById_Strains(sd.getId_str());

        if (!strains_omimDAOList.isEmpty()) {
            cell = new PdfPCell(
                    new Paragraph("\nOMIM IDs:\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11)));
            cell.setColspan(2);
            cell.setBorder(0);
            table.addCell(cell);

            for (Strains_OmimDAO strainsOmimDAO : strains_omimDAOList) {
                cell = new PdfPCell(
                        new Paragraph("" + cleanNULLS(strainsOmimDAO.getOmimDAO().getOmim(), true)));
                cell.setColspan(2);
                table.addCell(cell);
            }
        }

        cell = new PdfPCell(new Paragraph(
                "\n\nIf OMIM IDs are not available, please describe the human condition or disease:\n\n",
                FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        cell = new PdfPCell(new Paragraph("" + cleanNULLS(sd.getHuman_model_desc(), true)));
        cell.setColspan(2);
        table.addCell(cell);

        // Prep for Research areas
        Set cs = sd.getCategoriesStrainsDAO();
        String otherCategory = "";
        StringBuffer categories = new StringBuffer();
        for (Iterator it = cs.iterator(); it.hasNext();) {
            CategoriesStrainsDAO cd = (CategoriesStrainsDAO) it.next();
            if (cd.getCategoriesDAO().getCurated().compareTo("Y") == 0)
                categories.append("\n        ").append(cd.getCategoriesDAO().getMain_cat());
            else
                otherCategory = cd.getCategoriesDAO().getMain_cat();
        }

        cell = new PdfPCell(new Paragraph("\n\nResearch areas:\n        " + categories + "\n",
                FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        Set sRTools = sd.getRtoolsDAO();
        StringBuffer rtools = new StringBuffer("");
        System.out.println("size of rtoolsdao set is :- " + sRTools.size());
        for (Iterator it = sRTools.iterator(); it.hasNext();) {
            RToolsDAO rtd = (RToolsDAO) it.next();
            rtools = new StringBuffer(rtools).append("\n        ")
                    .append(rtd.getCvrtoolsDAO().getDescription());
            //System.out.println("Rtools set iterator value is: " + rtools);
        }

        if ((otherCategory != null) && (otherCategory.trim().length() > 0)) {
            cell = new PdfPCell(new Paragraph("\n\nOther Research areas:\n\n        " + otherCategory + "\n",
                    FontFactory.getFont(FontFactory.HELVETICA, 11)));
            cell.setColspan(2);
            cell.setBorder(0);
            table.addCell(cell);
        }
        cell = new PdfPCell(new Paragraph("\n\nResearch tools:\n" + rtools,
                FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        /* END OF Research value */

        doc.add(table);
        doc.add(Chunk.NEWLINE);
        doc.add(Chunk.NEWLINE);
        doc.add(underlined);
        table = new PdfPTable(widths);

        table.setWidthPercentage(100);

        /* Additional information */

        cell = new PdfPCell(new Paragraph("\n\nAdditional information (Step 11 of 11)\n\n", font));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        if (sd.getResiduesDAO() != null) {
            cell = new PdfPCell(new Paragraph(
                    "How many requests for this strain have you received in the last 6 months? "
                            + cleanNULLS(sd.getResiduesDAO().getNumber_of_requests(), false),
                    FontFactory.getFont(FontFactory.HELVETICA, 11)));
        } else {
            cell = new PdfPCell(
                    new Paragraph("How many requests for this strain have you received in the last 6 months? ",
                            FontFactory.getFont(FontFactory.HELVETICA, 11)));
        }

        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        if (sd.getResiduesDAO() != null) {
            cell = new PdfPCell(new Paragraph(
                    "Is this strain being deposited with any other institution or biotechnology company? "
                            + cleanNULLS(sd.getResiduesDAO().getDeposited_elsewhere() + "\n\n", false),
                    FontFactory.getFont(FontFactory.HELVETICA, 11)));
        } else {
            cell = new PdfPCell(new Paragraph(
                    "Is this strain being deposited with any other institution or biotechnology company? ",
                    FontFactory.getFont(FontFactory.HELVETICA, 11)));
        }
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        if (sd.getResiduesDAO() != null) {
            if (sd.getResiduesDAO().getIpr_description() != null) {
                cell = new PdfPCell(
                        new Paragraph(cleanNULLS(sd.getResiduesDAO().getDeposited_elsewhere_text(), true)));
                cell.setColspan(2);
                table.addCell(cell);
            }
        }

        if (sd.getResiduesDAO() != null) {
            cell = new PdfPCell(new Paragraph(
                    "\n\nAre other laboratories producing similar strains? "
                            + cleanNULLS(sd.getResiduesDAO().getOther_labos(), false),
                    FontFactory.getFont(FontFactory.HELVETICA, 11)));
        } else {
            cell = new PdfPCell(new Paragraph("\n\nAre other laboratories producing similar strains? ",
                    FontFactory.getFont(FontFactory.HELVETICA, 11)));
        }
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        String IPRights = "";
        if (sd.getResiduesDAO() != null) {
            IPRights = sd.getResiduesDAO().getIp_rights();
        } else {
            //do nothing
        }
        cell = new PdfPCell(new Paragraph(
                "Are there any intellectual property rights or patented technologies linked to this strain? "
                        + IPRights + "\n\n",
                FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        if (sd.getResiduesDAO() != null) {
            if (sd.getResiduesDAO().getIpr_description() != null) {
                cell = new PdfPCell(
                        new Paragraph("" + cleanNULLS(sd.getResiduesDAO().getIpr_description(), true)));
                cell.setColspan(2);
                table.addCell(cell);
            }
        }

        cell = new PdfPCell(new Paragraph(
                "\nIs the producer the exclusive owner of this strain? "
                        + cleanNULLS(sd.getExclusive_owner(), false) + "\n\n",
                FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        cell = new PdfPCell(new Paragraph("" + cleanNULLS(sd.getEx_owner_description(), true)));
        cell.setColspan(2);
        table.addCell(cell);

        cell = new PdfPCell(new Paragraph(
                "\nDo you have permission from all owners to deposit this strain in the EMMA repository? "
                        + cleanNULLS(sd.getResiduesDAO().getOwner_permission(), false) + "\n\n",
                FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        cell = new PdfPCell(
                new Paragraph("" + cleanNULLS(sd.getResiduesDAO().getOwner_permission_text(), true)));
        cell.setColspan(2);
        table.addCell(cell);

        String delayedRelease = "";
        if (sd.getResiduesDAO() != null) {
            delayedRelease = cleanNULLS(sd.getResiduesDAO().getDelayed_wanted(), false);
        }
        if (delayedRelease != null && delayedRelease.startsWith("yes")) {
            delayedRelease = new StringBuffer(delayedRelease).append(" (briefly explain below)\n\n").toString();
        }

        cell = new PdfPCell(new Paragraph("\nDo you require delayed release for your strain? " + delayedRelease,
                FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);
        if (delayedRelease != null && delayedRelease.startsWith("yes")) {
            cell = new PdfPCell(new Paragraph("" + sd.getResiduesDAO().getDelayed_description()));
            cell.setColspan(2);
            table.addCell(cell);
        }

        if (sd.getResiduesDAO() != null) {
            cell = new PdfPCell(new Paragraph("\nHow many mice of breeding age could you provide and when?"
                    + "\n\nEstimated date of shipping:\n\nMonth: "
                    + cleanNULLS(sd.getResiduesDAO().getWhen_how_many_month(), false) + "\n\nYear: "
                    + cleanNULLS(sd.getResiduesDAO().getWhen_how_many_year(), false) + "\n\nNumber of males: "
                    + cleanNULLS(sd.getResiduesDAO().getWhen_how_many_males(), false)
                    + "\n\nNumber of females: "
                    + cleanNULLS(sd.getResiduesDAO().getWhen_how_many_females(), false),
                    FontFactory.getFont(FontFactory.HELVETICA, 11)));
        } else {
            cell = new PdfPCell(new Paragraph(
                    "\n\nHow many mice of breeding age could you provide and when?"
                            + "\n\nEstimated date of shipping:\n\nMonth: " + "\n\nYear: "
                            + "\n\nNumber of males: " + "\n\nNumber of females: ",
                    FontFactory.getFont(FontFactory.HELVETICA, 11)));
        }
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        //assocFilesADDITIONAL

        StringBuffer additionalFiles = new StringBuffer("");
        for (Iterator it = assocFilesADDITIONAL.iterator(); it.hasNext();) {
            String fileName = it.next().toString();
            additionalFiles = new StringBuffer(additionalFiles).append("\n        ").append(fileName);
        }

        cell = new PdfPCell(
                new Paragraph("\nAdditional files uploaded:", FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        cell = new PdfPCell(
                new Paragraph("" + additionalFiles, FontFactory.getFont(FontFactory.HELVETICA, 11)));
        cell.setColspan(2);
        cell.setBorder(0);
        table.addCell(cell);

        //            cell = new PdfPCell(new Paragraph("\n\nWere any of the following techniques used in the construction of this mutant?\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11)));
        //            cell.setColspan(2);
        //            cell.setBorder(0);
        //            table.addCell(cell);
        //
        //            if (sd.getResiduesDAO() != null) {
        //                cell = new PdfPCell(new Paragraph("Cre recombinase-loxP technology? " + cleanNULLS(sd.getResiduesDAO().getCrelox(), false), FontFactory.getFont(FontFactory.HELVETICA, 11)));
        //            } else {
        //                cell = new PdfPCell(new Paragraph("Cre recombinase-loxP technology? ", FontFactory.getFont(FontFactory.HELVETICA, 11)));
        //            }
        //            cell.setColspan(2);
        //            cell.setBorder(0);
        //            table.addCell(cell);
        //
        //            if (sd.getResiduesDAO() != null) {
        //                cell = new PdfPCell(new Paragraph("FLP recombinase technology? " + cleanNULLS(sd.getResiduesDAO().getFlp(), false), FontFactory.getFont(FontFactory.HELVETICA, 11)));
        //            } else {
        //                cell = new PdfPCell(new Paragraph("FLP recombinase technology? ", FontFactory.getFont(FontFactory.HELVETICA, 11)));
        //            }
        //            cell.setColspan(2);
        //            cell.setBorder(0);
        //            table.addCell(cell);
        //
        //            if (sd.getResiduesDAO() != null) {
        //                cell = new PdfPCell(new Paragraph("TET-system technology? " + cleanNULLS(sd.getResiduesDAO().getTet(), false), FontFactory.getFont(FontFactory.HELVETICA, 11)));
        //            } else {
        //                cell = new PdfPCell(new Paragraph("TET-system technology? ", FontFactory.getFont(FontFactory.HELVETICA, 11)));
        //            }
        //            cell.setColspan(2);
        //            cell.setBorder(0);
        //            table.addCell(cell);
        //
        //
        //            if (sd.getResiduesDAO() != null) {
        //                cell = new PdfPCell(new Paragraph("\n\nIf the submission request is accepted when could you provide "
        //                        + "10 females and 6 males (5-12 weeks old)?"
        //                        + "\nEstimated date of shipping\nMonth: " + cleanNULLS(sd.getResiduesDAO().getWhen_mice_month(), false) + "\nYear: " + cleanNULLS(sd.getResiduesDAO().getWhen_mice_year(), false), FontFactory.getFont(FontFactory.HELVETICA, 11)));
        //            } else {
        //                cell = new PdfPCell(new Paragraph("\n\nIf the submission request is accepted when could you provide "
        //                        + "10 females and 6 males (5-12 weeks old)?"
        //                        + "\nEstimated date of shipping\nMonth: \nYear:", FontFactory.getFont(FontFactory.HELVETICA, 11)));
        //            }
        //
        //            cell.setColspan(2);
        //            cell.setBorder(0);
        //            table.addCell(cell);

        //            if (sd.getResiduesDAO() != null) {
        //                cell = new PdfPCell(new Paragraph("\n\nIf unable to provide this number of mice how many could you provide and when?"
        //                        + "\nEstimated date of shipping\nMonth: " + cleanNULLS(sd.getResiduesDAO().getWhen_how_many_month(), false)
        //                        + "\nYear: " + cleanNULLS(sd.getResiduesDAO().getWhen_how_many_year(), false)
        //                        + "\nNumber of males: " + cleanNULLS(sd.getResiduesDAO().getWhen_how_many_males(), false)
        //                        + "\nNumber of females: " + cleanNULLS(sd.getResiduesDAO().getWhen_how_many_females(), false),
        //                        FontFactory.getFont(FontFactory.HELVETICA, 11)));
        //            } else {
        //                cell = new PdfPCell(new Paragraph("\n\nIf unable to provide this number of mice how many could you provide and when?"
        //                        + "\nEstimated date of shipping\nMonth: "
        //                        + "\nYear: "
        //                        + "\nNumber of males: "
        //                        + "\nNumber of females: ",
        //                        FontFactory.getFont(FontFactory.HELVETICA, 11)));
        //            }
        //            cell.setColspan(2);
        //            cell.setBorder(0);
        //            table.addCell(cell);

        /* END OF ADDITIONAL INFORMATION */
        doc.add(table);

        doc.add(Chunk.NEWLINE);
        // Space padding underline
        underlined = new Chunk(
                "                                                                                     "
                        + "                                                                       ");
        underlined.setUnderline(new Color(0x00, 0x00, 0x00), 0.0f, 0.2f, 16.0f, 0.0f,
                PdfContentByte.LINE_CAP_BUTT);//Black line
        doc.add(underlined);

        pSubHead = new Paragraph("The terms and conditions have been accepted.\n\n",
                FontFactory.getFont(FontFactory.HELVETICA, 11));
        pSubHead.setAlignment(Element.ALIGN_CENTER);
        doc.add(pSubHead);
    }
}

From source file:org.emmanet.controllers.RequestFormController.java

License:Apache License

public String createPDF(Map model, String filePath) {
    /* I really don't like this iText library.
     * Takes so much effort to figure it all out
     * to get an acceptable pdf rendition. */

    Document doc = new Document();
    try {// w w w  .  j a v a2s.  c  o  m
        System.out.println(model.get("timestamp"));

        PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream(filePath));
        doc.open();
        Paragraph pHead = new Paragraph(pdfTitle + "\n\n", FontFactory.getFont(FontFactory.HELVETICA, 11));
        pHead.setAlignment(Element.ALIGN_CENTER);
        doc.add(pHead);
        doc.add(new Paragraph(pdfTitle + "\nRequest ID:" + model.get("requestID") + "\n\n",
                FontFactory.getFont(FontFactory.HELVETICA_BOLD, 20)));
        Paragraph pSubHead = new Paragraph(
                "Following data have been submitted to EMMA on " + model.get("ftimestamp"),
                FontFactory.getFont(FontFactory.HELVETICA, 11));
        pSubHead.setAlignment(Element.ALIGN_CENTER);

        doc.add(pSubHead);
        doc.add(Chunk.NEWLINE);
        // Space padding underline
        Chunk underlined = new Chunk(
                "                                                                                     "
                        + "                                                                       ");
        underlined.setUnderline(new Color(0x00, 0x00, 0x00), 0.0f, 0.2f, 16.0f, 0.0f,
                PdfContentByte.LINE_CAP_BUTT);//Black line
        doc.add(underlined);
        Font font = FontFactory.getFont(FontFactory.HELVETICA_BOLD, 11);
        // Set table cell widths equiv. to 25% and 75%
        float[] widths = { 0.25f, 0.75f };
        PdfPTable table = new PdfPTable(widths);

        table.setWidthPercentage(100);

        PdfPCell cell = new PdfPCell(new Paragraph("Scientist\n\n", font));
        cell.setColspan(2);
        cell.setBorder(0);

        table.addCell(cell);
        table.addCell("Title");
        table.addCell("" + model.get("sci_title"));
        table.addCell("Firstname");
        table.addCell("" + model.get("sci_firstname"));
        table.addCell("Surname");
        table.addCell("" + model.get("sci_surname"));
        table.addCell("E-mail");
        table.addCell("" + model.get("sci_e_mail"));
        table.addCell("Phone");
        table.addCell("" + model.get("sci_phone"));
        table.addCell("Fax");
        table.addCell("" + model.get("sci_fax"));
        PdfPCell cellShip = new PdfPCell(new Paragraph("\nShipping Contact\n\n", font));
        cellShip.setColspan(2);
        cellShip.setBorder(0);
        table.addCell(cellShip);

        table.addCell("Title");
        table.addCell("" + model.get("con_title"));
        table.addCell("Firstname");
        table.addCell("" + model.get("con_firstname"));
        table.addCell("Surname");
        table.addCell("" + model.get("con_surname"));
        table.addCell("E-mail");
        table.addCell("" + model.get("con_e_mail"));
        table.addCell("Phone");
        table.addCell("" + model.get("con_phone"));
        table.addCell("Fax");
        table.addCell("" + model.get("con_fax"));
        table.addCell("Institution");
        table.addCell("" + model.get("con_institution"));
        table.addCell("Department");
        table.addCell("" + model.get("con_dept"));
        table.addCell("Address Line 1");
        table.addCell("" + model.get("con_addr_1"));
        table.addCell("Address Line 2");
        table.addCell("" + model.get("con_addr_2"));
        table.addCell("County/province");
        table.addCell("" + model.get("con_province"));
        table.addCell("Town");
        table.addCell("" + model.get("con_town"));
        table.addCell("Postcode");
        table.addCell("" + model.get("con_postcode"));
        table.addCell("Country");
        table.addCell("" + model.get("con_country"));

        if (!model.get("ROI").equals("1")) {
            //webrequest is not a roi so these were set above so send them to pdf
            PdfPCell cellBill = new PdfPCell(new Paragraph("\nBilling Details\n\n", font));
            cellBill.setColspan(2);
            cellBill.setBorder(0);
            table.addCell(cellBill);

            table.addCell("VAT reference");
            table.addCell("" + model.get("bil_vat"));
            table.addCell("Purchase Order Number");
            table.addCell("" + model.get("PO_ref"));
            table.addCell("Title");
            table.addCell("" + model.get("bil_title"));
            table.addCell("Firstname");
            table.addCell("" + model.get("bil_firstname"));
            table.addCell("Surname");
            table.addCell("" + model.get("bil_surname"));
            table.addCell("E-mail");
            table.addCell("" + model.get("bil_e_mail"));
            table.addCell("Phone");
            table.addCell("" + model.get("bil_phone"));
            table.addCell("Fax");
            table.addCell("" + model.get("bil_fax"));
            table.addCell("Institution");
            table.addCell("" + model.get("bil_institution"));
            table.addCell("Department");
            table.addCell("" + model.get("bil_dept"));
            table.addCell("Address Line 1");
            table.addCell("" + model.get("bil_addr_1"));
            table.addCell("Address Line 2");
            table.addCell("" + model.get("bil_addr_2"));
            table.addCell("County/province");
            table.addCell("" + model.get("bil_province"));
            table.addCell("Town");
            table.addCell("" + model.get("bil_town"));
            table.addCell("Postcode");
            table.addCell("" + model.get("bil_postcode"));
            table.addCell("Country");
            table.addCell("" + model.get("bil_country"));
        }

        PdfPCell cellStrain = new PdfPCell(new Paragraph("\nStrain Details\n\n", font));
        cellStrain.setColspan(2);
        cellStrain.setBorder(0);

        table.addCell(cellStrain);
        table.addCell("Strain ID");
        table.addCell("" + model.get("strain_id"));
        table.addCell("Strain name");
        table.addCell("" + model.get("strain_name"));
        table.addCell("Common Name(s)");
        table.addCell("" + model.get("common_name_s"));

        if (model.get("req_material") != null) {
            PdfPCell cellMaterial = new PdfPCell(new Paragraph("\nRequested Material\n\n", font));
            cellMaterial.setColspan(2);
            cellMaterial.setBorder(0);

            table.addCell(cellMaterial);
            table.addCell("Material");
            table.addCell("" + model.get("req_material"));
        }

        if (model.get("live_animals") != null) {
            table.addCell("Live Animals");
            table.addCell("Selected");
        }

        if (model.get("frozen_emb") != null) {
            table.addCell("Frozen Embryos");
            table.addCell("Selected");
        }

        if (model.get("frozen_spe") != null) {
            table.addCell("Frozen Sperm");
            table.addCell("Selected");
        }

        if (pdfConditions) {
            String text = "";
            String text1 = "";
            String text2 = "";
            String header = "";
            String header1 = "";
            String header2 = "";
            if (model.get("application_type").equals("request_only")) {
                text = new StringBuilder().append(text).append(
                        "\nYou have indicated that you have read the conditions and agree to pay the transmittal fee "
                                + "plus shipping costs.")
                        .toString();

                header = new StringBuilder().append(header).append("\nStandard request\n").toString();

            } else if (!model.get("application_type").equals("request_only")) {
                header1 = new StringBuilder().append(header1)
                        .append("\nApplication for Transnational Access Activity").toString();
                if (model.get("application_type").equals("ta_only")) {
                    text1 = new StringBuilder().append(text1).append(
                            "\nYou have indicated that you have read the conditions and have applied for free of charge TA only. "
                                    + "In the case of the TA application being rejected the request process will be terminated.")
                            .toString();
                    header1 = new StringBuilder().append(header1).append(" (TA Option B)\n").toString();
                } else {
                    text1 = new StringBuilder().append(text1).append(
                            "\nYou have indicated that you have read the conditions and have applied for free of charge TA "
                                    + "and have agreed to pay the service charge plus shipping cost if the TA application is rejected.")
                            .toString();
                    header1 = new StringBuilder().append(header1).append(" (TA Option A)\n").toString();
                }

                header2 = new StringBuilder().append(header2).append(
                        "\n\nDescription of project (1/2 page) involving requested EMMA mouse mutant resource. "
                                + "The project description will be used by the Evaluation Committee for selection of applicants:")
                        .toString();
            }

            if (!model.get("application_type").equals("request_only")) {
                //  table.addCell("" + model.get("ta_proj_desc"));
                text2 = new StringBuilder().append(text2).append("\n\n " + model.get("ta_proj_desc"))
                        .toString();
            }

            if (!model.get("application_type").equals("request_only")) {
                //we have a ta header and text to add
                PdfPCell cellConditions1 = new PdfPCell(new Paragraph(header1, font));

                cellConditions1.setColspan(2);
                cellConditions1.setBorder(0);
                table.addCell(cellConditions1);

                PdfPCell cellConditions2 = new PdfPCell(new Paragraph(text1));

                cellConditions2.setColspan(2);
                cellConditions2.setBorder(0);
                table.addCell(cellConditions2);

                PdfPCell cellConditions3 = new PdfPCell(new Paragraph(header2, font));

                cellConditions3.setColspan(2);
                cellConditions3.setBorder(0);
                table.addCell(cellConditions3);

                PdfPCell cellConditions4 = new PdfPCell(new Paragraph(text2));

                cellConditions4.setColspan(2);
                cellConditions4.setBorder(0);
                table.addCell(cellConditions4);

            } else {

                PdfPCell cellConditions = new PdfPCell(new Paragraph(header, font));
                cellConditions.setColspan(2);
                cellConditions.setBorder(0);
                table.addCell(cellConditions);

                PdfPCell cellConditionsTxt = new PdfPCell(new Paragraph(text));
                cellConditionsTxt.setColspan(2);
                cellConditionsTxt.setBorder(0);
                table.addCell(cellConditionsTxt);
            }

        }
        doc.add(table);

    } catch (DocumentException de) {
        System.err.println(de.getMessage());
    } catch (IOException e) {
        System.err.println(e.getMessage());
    }

    doc.close();
    return filePath;
}

From source file:org.getobjects.samples.HelloPDF.PDFAction.java

License:Open Source License

/**
 * Add some content to the PDF. This is using iText methods to add some text
 * and a few tables to the given Document.
 * Note how you can reuse higher-level objects once they got added to the
 * document (iText does not keep a higher level structure but directly
 * generates the PDF content)./* w  ww  .  ja  va2  s .c  om*/
 * 
 * @param _itext - the iText Document object
 * @throws DocumentException
 */
void addContent(Document _itext) throws DocumentException {

    /* a small paragraph */

    _itext.add(new Paragraph("Hello World"));

    /* a simple table (default width is 80%) */

    PdfPTable table = new PdfPTable(3);
    table.setSpacingBefore(10);
    table.setSpacingAfter(10);

    PdfPCell th = new PdfPCell(new Paragraph("Title"));
    th.setColspan(3);
    table.addCell(th);

    for (int i = 0; i < 8; i++) {
        for (int j = 0; j < 3; j++)
            table.addCell("" + i + "/" + j);
    }

    _itext.add(table);

    /* readd table with full width */

    table.setWidthPercentage(100);
    _itext.add(table);

    /* readd with align */

    table.setWidthPercentage(60);
    table.setHorizontalAlignment(Element.ALIGN_LEFT);
    _itext.add(table);

    /* and make a big table to enforce a pagebreak */

    for (int i = 0; i < 32; i++) {
        for (int j = 0; j < 3; j++)
            table.addCell("" + i + "/" + j);
    }
    _itext.add(table);
}