Example usage for com.lowagie.text Font BOLD

List of usage examples for com.lowagie.text Font BOLD

Introduction

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

Prototype

int BOLD

To view the source code for com.lowagie.text Font BOLD.

Click Source Link

Document

this is a possible style.

Usage

From source file:com.geek.tutorial.itext.text.Phrase_Example.java

License:Open Source License

public Phrase_Example() throws Exception {

    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream("phrase_example.pdf"));
    document.open();//from   ww  w  .  j a  va 2  s .  co  m

    Font font = new Font(Font.COURIER, 10, Font.BOLD);
    font.setColor(new Color(0x92, 0x90, 0x83));
    Chunk chunk = new Chunk("testing text element ", font);
    chunk.setBackground(new Color(0xff, 0xe4, 0x00));

    Phrase phrase = new Phrase(20, "This is initial text. "); // 1      

    for (int i = 0; i < 10; i++) {
        phrase.add(chunk); // 2
    }

    document.add(phrase); // 3

    document.close();
}

From source file:com.googlecode.openmpis.action.AbductorAction.java

License:Open Source License

/**
 * Prints the abductor's poster in PDF file.
 *
 * @param mapping       the ActionMapping used to select this instance
 * @param form          the optional ActionForm bean for this request
 * @param request       the HTTP Request we are processing
 * @param response      the HTTP Response we are processing
 * @return              the forwarding instance
 * @throws java.lang.Exception/*from  w  w  w  . jav a  2s .  c o m*/
 */
public ActionForward printPoster(ActionMapping mapping, ActionForm form, HttpServletRequest request,
        HttpServletResponse response) throws Exception {
    // Set the paper size and margins
    Document document = new Document(PageSize.LETTER, 50, 50, 50, 50);

    // Create the PDF writer
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    PdfWriter.getInstance(document, baos);

    // Retrieve the abductor
    try {
        int id = Integer.parseInt(request.getParameter("id"));

        Abductor abductor = abductorService.getAbductorById(id);

        // Process the photo
        String absoluteDefaultPhotoFilename = getServlet().getServletContext().getRealPath("/") + "photo"
                + File.separator + "unknown.png";
        if (abductor.getPhoto() != null) {
            String tokens[] = abductor.getPhoto().split("\\/");
            String defaultPhotoBasename = "";
            for (int i = 0; i < tokens.length - 1; i++) {
                defaultPhotoBasename += tokens[i] + File.separator;
            }
            defaultPhotoBasename += tokens[tokens.length - 1];
            absoluteDefaultPhotoFilename = getServlet().getServletContext().getRealPath("/")
                    + defaultPhotoBasename;
        }

        // Add some meta information to the document
        document.addTitle("Poster");
        document.addAuthor("OpenMPIS");
        document.addSubject("Poster for " + abductor.getNickname());
        document.addKeywords("OpenMPIS, missing, found, unidentified");
        document.addProducer();
        document.addCreationDate();
        document.addCreator("OpenMPIS version " + Constants.VERSION);

        // Open the document for writing
        document.open();
        // Add the banner
        Paragraph wantedParagraph = new Paragraph("W A N T E D",
                FontFactory.getFont(FontFactory.HELVETICA_BOLD, 36, Font.BOLD, new Color(255, 0, 0)));
        wantedParagraph.setAlignment(Paragraph.ALIGN_CENTER);
        document.add(wantedParagraph);
        // Add name
        Paragraph redParagraph;
        if (!abductor.getNickname().isEmpty()) {
            redParagraph = new Paragraph(
                    abductor.getFirstName() + " \"" + abductor.getNickname() + "\" " + abductor.getLastName(),
                    FontFactory.getFont(FontFactory.HELVETICA, 12, Font.BOLD, new Color(255, 0, 0)));
        } else {
            redParagraph = new Paragraph(abductor.getFirstName() + " " + abductor.getLastName(),
                    FontFactory.getFont(FontFactory.HELVETICA, 12, Font.BOLD, new Color(255, 0, 0)));
        }
        redParagraph.setAlignment(Paragraph.ALIGN_CENTER);
        document.add(redParagraph);
        // Add the photo
        Image image = Image.getInstance(absoluteDefaultPhotoFilename);
        image.scaleAbsolute(200, 300);
        image.setAlignment(Image.ALIGN_CENTER);
        document.add(image);
        // Add birth date
        Paragraph blackParagraph;
        if (abductor.getBirthMonth() > 0) {
            blackParagraph = new Paragraph(
                    getResources(request).getMessage("label.date.birth") + ": "
                            + getResources(request).getMessage("month." + abductor.getBirthMonth()) + " "
                            + abductor.getBirthDay() + ", " + abductor.getBirthYear(),
                    FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL, new Color(0, 0, 0)));
            blackParagraph.setAlignment(Paragraph.ALIGN_CENTER);
            document.add(blackParagraph);
        }
        // Add birth place
        blackParagraph = new Paragraph(
                getResources(request).getMessage("label.address.city") + ": " + abductor.getCity(),
                FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL, new Color(0, 0, 0)));
        blackParagraph.setAlignment(Paragraph.ALIGN_CENTER);
        document.add(blackParagraph);
        // Add sex
        blackParagraph = new Paragraph(
                getResources(request).getMessage("label.sex") + ": "
                        + getResources(request).getMessage("sex." + abductor.getSex()),
                FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL, new Color(0, 0, 0)));
        blackParagraph.setAlignment(Paragraph.ALIGN_CENTER);
        document.add(blackParagraph);
        // Add height
        blackParagraph = new Paragraph(
                getResources(request).getMessage("label.height") + ": " + abductor.getFeet() + "' "
                        + abductor.getInches() + "\"",
                FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL, new Color(0, 0, 0)));
        blackParagraph.setAlignment(Paragraph.ALIGN_CENTER);
        document.add(blackParagraph);
        // Add weight
        blackParagraph = new Paragraph(
                getResources(request).getMessage("label.weight") + ": " + abductor.getWeight() + " "
                        + getResources(request).getMessage("label.weight.lbs"),
                FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL, new Color(0, 0, 0)));
        blackParagraph.setAlignment(Paragraph.ALIGN_CENTER);
        document.add(blackParagraph);
        // Add hair color
        blackParagraph = new Paragraph(
                getResources(request).getMessage("label.color.hair") + ": "
                        + getResources(request).getMessage("color.hair." + abductor.getHairColor()),
                FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL, new Color(0, 0, 0)));
        blackParagraph.setAlignment(Paragraph.ALIGN_CENTER);
        document.add(blackParagraph);
        // Add eye color
        blackParagraph = new Paragraph(
                getResources(request).getMessage("label.color.eye") + ": "
                        + getResources(request).getMessage("color.eye." + abductor.getEyeColor()),
                FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL, new Color(0, 0, 0)));
        blackParagraph.setAlignment(Paragraph.ALIGN_CENTER);
        document.add(blackParagraph);
        // Add race
        blackParagraph = new Paragraph(
                getResources(request).getMessage("label.race") + ": "
                        + getResources(request).getMessage("race." + abductor.getRace()),
                FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL, new Color(0, 0, 0)));
        blackParagraph.setAlignment(Paragraph.ALIGN_CENTER);
        document.add(blackParagraph);
        // Add circumstance
        blackParagraph = new Paragraph(
                getResources(request).getMessage("label.remarks") + ": " + abductor.getRemarks(),
                FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL, new Color(0, 0, 0)));
        blackParagraph.setAlignment(Paragraph.ALIGN_CENTER);
        document.add(blackParagraph);
        // Add line
        blackParagraph = new Paragraph("---------------------------------------");
        blackParagraph.setAlignment(Paragraph.ALIGN_CENTER);
        document.add(blackParagraph);
        // Add contact
        blackParagraph = new Paragraph(getResources(request).getMessage("global.contact"),
                FontFactory.getFont(FontFactory.HELVETICA, 14, Font.NORMAL, new Color(0, 0, 0)));
        blackParagraph.setAlignment(Paragraph.ALIGN_CENTER);
        document.add(blackParagraph);
        document.close();

        // Set the response to return the poster (PDF file)
        response.setContentType("application/pdf");
        response.setContentLength(baos.size());
        response.setHeader("Content-disposition", "attachment; filename=Poster.pdf");

        // Close the output stream
        baos.writeTo(response.getOutputStream());
        response.getOutputStream().flush();

        return null;
    } catch (NumberFormatException nfe) {
        return mapping.findForward(Constants.LIST_PERSON);
    } catch (NullPointerException npe) {
        return mapping.findForward(Constants.LIST_PERSON);
    }
}

From source file:com.googlecode.openmpis.action.CaseAction.java

License:Open Source License

/**
 * Writes the cases to a PDF file.//from  ww  w  .  ja v  a  2  s . com
 *
 * @param mapping       the ActionMapping used to select this instance
 * @param form          the optional ActionForm bean for this request
 * @param request       the HTTP Request we are processing
 * @param response      the HTTP Response we are processing
 * @return              the forwarding instance
 * @throws java.lang.Exception
 */
public ActionForward printCases(ActionMapping mapping, ActionForm form, HttpServletRequest request,
        HttpServletResponse response) throws Exception {
    User currentUser = null;

    // Check if there exists a session
    if (request.getSession().getAttribute("currentuser") != null) {
        currentUser = (User) request.getSession().getAttribute("currentuser");
    }

    // Set the paper size and margins
    Document document = new Document(PageSize.LETTER.rotate(), 50, 50, 50, 50);

    // Create the PDF writer
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    PdfWriter.getInstance(document, baos);

    // Add some meta information to the document
    document.addTitle("Case Statistics");
    document.addAuthor("OpenMPIS");
    document.addSubject("Statistics for All Cases");
    document.addKeywords("OpenMPIS, missing, found, unidentified");
    document.addProducer();
    document.addCreationDate();
    document.addCreator("OpenMPIS version " + Constants.VERSION);

    // Set the header
    String date = simpleDateFormat.format(System.currentTimeMillis());
    document.setHeader(new HeaderFooter(new Phrase("Statistics for cases as of " + date), false));

    // Set the footer
    HeaderFooter footer = new HeaderFooter(new Phrase("Page : "), true);
    footer.setAlignment(Element.ALIGN_CENTER);
    document.setFooter(footer);

    // Open the document for writing
    document.open();
    Table table = new Table(2);
    table.setBorderWidth(1);
    table.setBorderColor(new Color(0, 0, 0));
    table.setPadding(2);
    table.setSpacing(0);
    Paragraph paragraph = new Paragraph("Cases",
            FontFactory.getFont(FontFactory.HELVETICA, 24, Font.BOLD, new Color(0, 0, 0)));
    paragraph.setAlignment(Paragraph.ALIGN_CENTER);
    Cell cell = new Cell(paragraph);
    cell.setHeader(true);
    cell.setColspan(2);
    table.addCell(cell);
    table.endHeaders();
    table.addCell("Total On-going Cases");
    table.addCell("" + personService.countOngoing());
    table.addCell("\t\t\t\t\tMissing Persons");
    table.addCell("\t\t\t\t\t\t\t\t\t\t" + personService.countMissing());
    table.addCell("\t\t\t\t\tFamily Abductions");
    table.addCell("\t\t\t\t\t\t\t\t\t\t" + personService.countFamilyAbduction());
    table.addCell("\t\t\t\t\tNon-Family Abductions");
    table.addCell("\t\t\t\t\t\t\t\t\t\t" + personService.countNonFamilyAbduction());
    table.addCell("\t\t\t\t\tRunaway Persons");
    table.addCell("\t\t\t\t\t\t\t\t\t\t" + personService.countRunaway());
    table.addCell("\t\t\t\t\tUnknown");
    table.addCell("\t\t\t\t\t\t\t\t\t\t" + personService.countUnknown());
    table.addCell("\t\t\t\t\tFound Persons");
    table.addCell("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" + personService.countFound());
    table.addCell("\t\t\t\t\tAbandoned Persons");
    table.addCell("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" + personService.countAbandoned());
    table.addCell("\t\t\t\t\tThrowaway Persons");
    table.addCell("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" + personService.countThrowaway());
    table.addCell("\t\t\t\t\tUnidentified");
    table.addCell(
            "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" + personService.countUnidentified());
    table.addCell("Total Solved Cases");
    table.addCell("" + personService.countSolved());
    table.addCell("\t\t\t\t\tMissing Persons");
    table.addCell("\t\t\t\t\t\t\t\t\t\t" + personService.countSolvedMissing());
    table.addCell("\t\t\t\t\tFamily Abductions");
    table.addCell("\t\t\t\t\t\t\t\t\t\t" + personService.countSolvedFamilyAbduction());
    table.addCell("\t\t\t\t\tNon-Family Abductions");
    table.addCell("\t\t\t\t\t\t\t\t\t\t" + personService.countSolvedNonFamilyAbduction());
    table.addCell("\t\t\t\t\tRunaway Persons");
    table.addCell("\t\t\t\t\t\t\t\t\t\t" + personService.countSolvedRunaway());
    table.addCell("\t\t\t\t\tUnknown");
    table.addCell("\t\t\t\t\t\t\t\t\t\t" + personService.countSolvedUnknown());
    table.addCell("\t\t\t\t\tFound Persons");
    table.addCell("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" + personService.countSolvedFound());
    table.addCell("\t\t\t\t\tAbandoned Persons");
    table.addCell("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" + personService.countSolvedAbandoned());
    table.addCell("\t\t\t\t\tThrowaway Persons");
    table.addCell("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" + personService.countSolvedThrowaway());
    table.addCell("\t\t\t\t\tUnidentified");
    table.addCell("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t"
            + personService.countSolvedUnidentified());
    table.addCell("Total Unsolved Cases");
    table.addCell("" + personService.countUnsolved());
    table.addCell("\t\t\t\t\tMissing Persons");
    table.addCell("\t\t\t\t\t\t\t\t\t\t" + personService.countUnsolvedMissing());
    table.addCell("\t\t\t\t\tFamily Abductions");
    table.addCell("\t\t\t\t\t\t\t\t\t\t" + personService.countUnsolvedFamilyAbduction());
    table.addCell("\t\t\t\t\tNon-Family Abductions");
    table.addCell("\t\t\t\t\t\t\t\t\t\t" + personService.countUnsolvedNonFamilyAbduction());
    table.addCell("\t\t\t\t\tRunaway Persons");
    table.addCell("\t\t\t\t\t\t\t\t\t\t" + personService.countUnsolvedRunaway());
    table.addCell("\t\t\t\t\tUnknown");
    table.addCell("\t\t\t\t\t\t\t\t\t\t" + personService.countUnsolvedUnknown());
    table.addCell("\t\t\t\t\tFound Persons");
    table.addCell("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" + personService.countUnsolvedFound());
    table.addCell("\t\t\t\t\tAbandoned Persons");
    table.addCell("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" + personService.countUnsolvedAbandoned());
    table.addCell("\t\t\t\t\tThrowaway Persons");
    table.addCell("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" + personService.countUnsolvedThrowaway());
    table.addCell("\t\t\t\t\tUnidentified");
    table.addCell("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t"
            + personService.countUnsolvedUnidentified());
    table.addCell("Total Cases");
    table.addCell("" + personService.countAllPersons());
    table.addCell("\t\t\t\t\tTotal Missing Persons");
    table.addCell("\t\t\t\t\t\t\t\t\t\t" + personService.countAllMissing());
    table.addCell("\t\t\t\t\tTotal Found Persons");
    table.addCell("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" + personService.countAllFound());
    table.addCell("\t\t\t\t\tTotal Unidentified Persons");
    table.addCell(
            "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" + personService.countUnidentified());
    table.addCell("Total Relatives");
    table.addCell("" + relativeService.countAllRelatives());
    table.addCell("Total Abductors");
    table.addCell("" + abductorService.countAllAbductors());
    document.add(table);
    if (currentUser != null) {
        // List ongoing cases
        document.setHeader(new HeaderFooter(new Phrase("List of ongoing cases as of " + date), false));
        document.newPage();
        float[] widths = { 0.05f, 0.1f, 0.1f, 0.1f, 0.1f, 0.1f, 0.05f, 0.15f, 0.1f, 0.1f, 0.05f };
        PdfPTable pdfptable = new PdfPTable(widths);
        pdfptable.setWidthPercentage(100);
        pdfptable.addCell(new Phrase("ID", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Last Name", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("First Name", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Nickname", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Middle Name", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Case Type", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Status", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Photo", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Relative", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Abductor", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Investigator", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        List<Person> personList = personService.listOngoing();
        if (personList != null) {
            for (Person person : personList) {
                // Process the photo
                String tokens[] = person.getPhoto().split("\\/");
                String defaultPhotoBasename = "";
                for (int i = 0; i < tokens.length - 1; i++) {
                    defaultPhotoBasename += tokens[i] + File.separator;
                }
                defaultPhotoBasename += tokens[tokens.length - 1];
                String absoluteDefaultPhotoFilename = getServlet().getServletContext().getRealPath("/")
                        + defaultPhotoBasename;
                Image image = Image.getInstance(absoluteDefaultPhotoFilename);
                image.scaleAbsolute(50, 75);
                image.setAlignment(Image.ALIGN_CENTER);

                pdfptable.addCell(
                        new Phrase("" + person.getId(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(person.getLastName(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(person.getFirstName(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(person.getNickname(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(person.getMiddleName(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(new Phrase(getResources(request).getMessage("type." + person.getType()),
                        FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(getResources(request).getMessage("status.case." + person.getStatus()),
                                FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(image);
                String relativeName = "";
                if (person.getRelativeId() != null) {
                    Relative relative = relativeService.getRelativeById(person.getRelativeId());
                    relativeName = relative.getFirstName() + " " + relative.getLastName();
                }
                pdfptable.addCell(new Phrase(relativeName, FontFactory.getFont(FontFactory.HELVETICA, 8)));
                String abductorName = "";
                if (person.getAbductorId() != null) {
                    Abductor abductor = abductorService.getAbductorById(person.getAbductorId());
                    abductorName = abductor.getFirstName() + " " + abductor.getLastName();
                }
                pdfptable.addCell(new Phrase(abductorName, FontFactory.getFont(FontFactory.HELVETICA, 8)));
                String investigatorUsername = "";
                if (person.getInvestigatorId() != null) {
                    User investigator = userService.getUserById(person.getInvestigatorId());
                    investigatorUsername = investigator.getUsername();
                }
                pdfptable.addCell(
                        new Phrase(investigatorUsername, FontFactory.getFont(FontFactory.HELVETICA, 8)));
            }
        }
        document.add(pdfptable);

        // List solved cases
        document.setHeader(new HeaderFooter(new Phrase("List of solved cases as of " + date), false));
        document.newPage();
        pdfptable = new PdfPTable(widths);
        pdfptable.setWidthPercentage(100);
        pdfptable.addCell(new Phrase("ID", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Last Name", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("First Name", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Nickname", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Middle Name", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Case Type", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Status", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Photo", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Relative", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Abductor", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Investigator", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        personList = personService.listSolved();
        if (personList != null) {
            for (Person person : personList) {
                // Process the photo
                String tokens[] = person.getPhoto().split("\\/");
                String defaultPhotoBasename = "";
                for (int i = 0; i < tokens.length - 1; i++) {
                    defaultPhotoBasename += tokens[i] + File.separator;
                }
                defaultPhotoBasename += tokens[tokens.length - 1];
                String absoluteDefaultPhotoFilename = getServlet().getServletContext().getRealPath("/")
                        + defaultPhotoBasename;
                Image image = Image.getInstance(absoluteDefaultPhotoFilename);
                image.scaleAbsolute(50, 75);
                image.setAlignment(Image.ALIGN_CENTER);

                pdfptable.addCell(
                        new Phrase("" + person.getId(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(person.getLastName(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(person.getFirstName(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(person.getNickname(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(person.getMiddleName(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(new Phrase(getResources(request).getMessage("type." + person.getType()),
                        FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(getResources(request).getMessage("status.case." + person.getStatus()),
                                FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(image);
                String relativeName = "";
                if (person.getRelativeId() != null) {
                    Relative relative = relativeService.getRelativeById(person.getRelativeId());
                    relativeName = relative.getFirstName() + " " + relative.getLastName();
                }
                pdfptable.addCell(new Phrase(relativeName, FontFactory.getFont(FontFactory.HELVETICA, 8)));
                String abductorName = "";
                if (person.getAbductorId() != null) {
                    Abductor abductor = abductorService.getAbductorById(person.getAbductorId());
                    abductorName = abductor.getFirstName() + " " + abductor.getLastName();
                }
                pdfptable.addCell(new Phrase(abductorName, FontFactory.getFont(FontFactory.HELVETICA, 8)));
                String investigatorUsername = "";
                if (person.getInvestigatorId() != null) {
                    User investigator = userService.getUserById(person.getInvestigatorId());
                    investigatorUsername = investigator.getUsername();
                }
                pdfptable.addCell(
                        new Phrase(investigatorUsername, FontFactory.getFont(FontFactory.HELVETICA, 8)));
            }
        }
        document.add(pdfptable);

        // List unsolved cases
        document.setHeader(new HeaderFooter(new Phrase("List of unsolved cases as of " + date), false));
        document.newPage();
        pdfptable = new PdfPTable(widths);
        pdfptable.setWidthPercentage(100);
        pdfptable.addCell(new Phrase("ID", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Last Name", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("First Name", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Nickname", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Middle Name", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Case Type", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Status", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Photo", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Relative", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Abductor", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase("Investigator", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        personList = personService.listUnsolved();
        if (personList != null) {
            for (Person person : personList) {
                // Process the photo
                String tokens[] = person.getPhoto().split("\\/");
                String defaultPhotoBasename = "";
                for (int i = 0; i < tokens.length - 1; i++) {
                    defaultPhotoBasename += tokens[i] + File.separator;
                }
                defaultPhotoBasename += tokens[tokens.length - 1];
                String absoluteDefaultPhotoFilename = getServlet().getServletContext().getRealPath("/")
                        + defaultPhotoBasename;
                Image image = Image.getInstance(absoluteDefaultPhotoFilename);
                image.scaleAbsolute(50, 75);
                image.setAlignment(Image.ALIGN_CENTER);

                pdfptable.addCell(
                        new Phrase("" + person.getId(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(person.getLastName(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(person.getFirstName(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(person.getNickname(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(person.getMiddleName(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(new Phrase(getResources(request).getMessage("type." + person.getType()),
                        FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(getResources(request).getMessage("status.case." + person.getStatus()),
                                FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(image);
                String relativeName = "";
                if (person.getRelativeId() != null) {
                    Relative relative = relativeService.getRelativeById(person.getRelativeId());
                    relativeName = relative.getFirstName() + " " + relative.getLastName();
                }
                pdfptable.addCell(new Phrase(relativeName, FontFactory.getFont(FontFactory.HELVETICA, 8)));
                String abductorName = "";
                if (person.getAbductorId() != null) {
                    Abductor abductor = abductorService.getAbductorById(person.getAbductorId());
                    abductorName = abductor.getFirstName() + " " + abductor.getLastName();
                }
                pdfptable.addCell(new Phrase(abductorName, FontFactory.getFont(FontFactory.HELVETICA, 8)));
                String investigatorUsername = "";
                if (person.getInvestigatorId() != null) {
                    User investigator = userService.getUserById(person.getInvestigatorId());
                    investigatorUsername = investigator.getUsername();
                }
                pdfptable.addCell(
                        new Phrase(investigatorUsername, FontFactory.getFont(FontFactory.HELVETICA, 8)));
            }
        }
        document.add(pdfptable);
    }
    document.close();

    // Set the response to return the poster (PDF file)
    response.setContentType("application/pdf");
    response.setContentLength(baos.size());
    response.setHeader("Content-disposition", "attachment; filename=Case_Statistics.pdf");

    // Close the output stream
    baos.writeTo(response.getOutputStream());
    response.getOutputStream().flush();

    return null;
}

From source file:com.googlecode.openmpis.action.PersonAction.java

License:Open Source License

/**
 * Prints the person's poster in PDF file.
 *
 * @param mapping       the ActionMapping used to select this instance
 * @param form          the optional ActionForm bean for this request
 * @param request       the HTTP Request we are processing
 * @param response      the HTTP Response we are processing
 * @return              the forwarding instance
 * @throws java.lang.Exception/*from   www.j a  v a  2s.c o  m*/
 */
public ActionForward printPoster(ActionMapping mapping, ActionForm form, HttpServletRequest request,
        HttpServletResponse response) throws Exception {
    // Set the paper size and margins
    Document document = new Document(PageSize.LETTER, 50, 50, 50, 50);

    // Create the PDF writer
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    PdfWriter.getInstance(document, baos);

    // Retrieve the person
    try {
        int id = Integer.parseInt(request.getParameter("id"));
        Person person = (Person) personService.getPersonById(id);

        // Process the photo
        String tokens[] = person.getPhoto().split("\\/");
        String defaultPhotoBasename = "";
        for (int i = 0; i < tokens.length - 1; i++) {
            defaultPhotoBasename += tokens[i] + File.separator;
        }
        defaultPhotoBasename += tokens[tokens.length - 1];
        String absoluteDefaultPhotoFilename = getServlet().getServletContext().getRealPath("/")
                + defaultPhotoBasename;

        // Add some meta information to the document
        document.addTitle("Poster");
        document.addAuthor("OpenMPIS");
        document.addSubject("Poster for " + person.getNickname());
        document.addKeywords("OpenMPIS, missing, found, unidentified");
        document.addProducer();
        document.addCreationDate();
        document.addCreator("OpenMPIS version " + Constants.VERSION);

        // Open the document for writing
        document.open();
        // Add the banner
        if (person.getType() > 4) {
            Paragraph foundParagraph = new Paragraph("F O U N D",
                    FontFactory.getFont(FontFactory.HELVETICA_BOLD, 36, Font.BOLD, new Color(255, 0, 0)));
            foundParagraph.setAlignment(Paragraph.ALIGN_CENTER);
            document.add(foundParagraph);
        } else {
            Paragraph missingParagraph = new Paragraph("M I S S I N G",
                    FontFactory.getFont(FontFactory.HELVETICA_BOLD, 36, Font.BOLD, new Color(255, 0, 0)));
            missingParagraph.setAlignment(Paragraph.ALIGN_CENTER);
            document.add(missingParagraph);
        }
        // Add date missing or found
        Paragraph blackParagraph = new Paragraph(
                getResources(request).getMessage("month." + person.getMonthMissingOrFound()) + " "
                        + person.getDayMissingOrFound() + ", " + person.getYearMissingOrFound(),
                FontFactory.getFont(FontFactory.HELVETICA, 10, Font.BOLD, new Color(0, 0, 0)));
        blackParagraph.setAlignment(Paragraph.ALIGN_CENTER);
        document.add(blackParagraph);
        // Add missing from location
        if (person.getType() < 5) {
            blackParagraph = new Paragraph(person.getMissingFromCity() + ", " + person.getMissingFromProvince(),
                    FontFactory.getFont(FontFactory.HELVETICA, 10, Font.BOLD, new Color(0, 0, 0)));
            blackParagraph.setAlignment(Paragraph.ALIGN_CENTER);
            document.add(blackParagraph);
        }
        // Add name
        Paragraph redParagraph;
        if (!person.getNickname().isEmpty()) {
            redParagraph = new Paragraph(
                    person.getFirstName() + " \"" + person.getNickname() + "\" " + person.getLastName(),
                    FontFactory.getFont(FontFactory.HELVETICA, 12, Font.BOLD, new Color(255, 0, 0)));
        } else {
            redParagraph = new Paragraph(person.getFirstName() + " " + person.getLastName(),
                    FontFactory.getFont(FontFactory.HELVETICA, 12, Font.BOLD, new Color(255, 0, 0)));
        }
        redParagraph.setAlignment(Paragraph.ALIGN_CENTER);
        document.add(redParagraph);
        // Add the photo
        Image image = Image.getInstance(absoluteDefaultPhotoFilename);
        image.scaleAbsolute(200, 300);
        image.setAlignment(Image.ALIGN_CENTER);
        document.add(image);
        // Add description
        redParagraph = new Paragraph("Description",
                FontFactory.getFont(FontFactory.HELVETICA, 12, Font.BOLD, new Color(255, 0, 0)));
        redParagraph.setAlignment(Paragraph.ALIGN_CENTER);
        document.add(redParagraph);
        float[] widths = { 0.5f, 0.5f };
        PdfPTable pdfptable = new PdfPTable(widths);
        pdfptable.setWidthPercentage(100);
        if (person.getType() < 5) {
            pdfptable
                    .addCell(
                            new Phrase(
                                    getResources(request).getMessage("label.date.birth") + ": "
                                            + getResources(request)
                                                    .getMessage("month." + person.getBirthMonth())
                                            + " " + person.getBirthDay() + ", " + person.getBirthYear(),
                                    FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable.addCell(
                    new Phrase(getResources(request).getMessage("label.address.city") + ": " + person.getCity(),
                            FontFactory.getFont(FontFactory.HELVETICA, 12)));
        }
        pdfptable.addCell(new Phrase(
                getResources(request).getMessage("label.sex") + ": "
                        + getResources(request).getMessage("sex." + person.getSex()),
                FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable
                .addCell(
                        new Phrase(
                                getResources(request).getMessage("label.color.hair") + ": "
                                        + getResources(request)
                                                .getMessage("color.hair." + person.getHairColor()),
                                FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase(getResources(request).getMessage("label.height") + ": " + person.getFeet()
                + "' " + person.getInches() + "\"", FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase(
                getResources(request).getMessage("label.color.eye") + ": "
                        + getResources(request).getMessage("color.eye." + person.getEyeColor()),
                FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase(
                getResources(request).getMessage("label.weight") + ": " + person.getWeight() + " "
                        + getResources(request).getMessage("label.weight.lbs"),
                FontFactory.getFont(FontFactory.HELVETICA, 12)));
        pdfptable.addCell(new Phrase(
                getResources(request).getMessage("label.race") + ": "
                        + getResources(request).getMessage("race." + person.getRace()),
                FontFactory.getFont(FontFactory.HELVETICA, 12)));
        document.add(pdfptable);
        // Add circumstance
        redParagraph = new Paragraph(getResources(request).getMessage("label.circumstance"),
                FontFactory.getFont(FontFactory.HELVETICA, 12, Font.BOLD, new Color(255, 0, 0)));
        redParagraph.setAlignment(Paragraph.ALIGN_CENTER);
        document.add(redParagraph);
        blackParagraph = new Paragraph(person.getCircumstance(),
                FontFactory.getFont(FontFactory.HELVETICA, 10, Font.NORMAL));
        blackParagraph.setAlignment(Paragraph.ALIGN_JUSTIFIED);
        document.add(blackParagraph);
        // Add line
        blackParagraph = new Paragraph(
                "------------------------------------------------------------------------------");
        blackParagraph.setAlignment(Paragraph.ALIGN_CENTER);
        document.add(blackParagraph);
        // Add contact
        blackParagraph = new Paragraph(getResources(request).getMessage("global.contact"),
                FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL));
        blackParagraph.setAlignment(Paragraph.ALIGN_JUSTIFIED);
        document.add(blackParagraph);
        document.close();

        // Set the response to return the poster (PDF file)
        response.setContentType("application/pdf");
        response.setContentLength(baos.size());
        response.setHeader("Content-disposition", "attachment; filename=Poster.pdf");

        // Close the output stream
        baos.writeTo(response.getOutputStream());
        response.getOutputStream().flush();

        return null;
    } catch (NumberFormatException nfe) {
        return mapping.findForward(Constants.LIST_PERSON);
    } catch (NullPointerException npe) {
        return mapping.findForward(Constants.LIST_PERSON);
    }
}

From source file:com.googlecode.openmpis.action.ReportAction.java

License:Open Source License

/**
 * Prints the reports.//from   w  w  w  .ja  v  a 2  s .  c om
 * This is the print report action called from the Struts framework.
 *
 * @param mapping       the ActionMapping used to select this instance
 * @param form          the optional ActionForm bean for this request
 * @param request       the HTTP Request we are processing
 * @param response      the HTTP Response we are processing
 * @return              the forwarding instance
 * @throws java.lang.Exception
 */
public ActionForward printReport(ActionMapping mapping, ActionForm form, HttpServletRequest request,
        HttpServletResponse response) throws Exception {
    User currentUser = null;

    // Check if there exists a session
    if (request.getSession().getAttribute("currentuser") == null) {
        return mapping.findForward(Constants.EXPIRED);
    } else {
        currentUser = (User) request.getSession().getAttribute("currentuser");
    }

    // Check if current user is authorized
    if ((currentUser.getGroupId() == 1) || (currentUser.getGroupId() == 2)) {
        // Retrieve person ID
        try {
            int personId = Integer.parseInt(request.getParameter("personid"));
            Person person = personService.getPersonById(personId);

            // Process the photo
            String tokens[] = person.getPhoto().split("\\/");
            String defaultPhotoBasename = "";
            for (int i = 0; i < tokens.length - 1; i++) {
                defaultPhotoBasename += tokens[i] + File.separator;
            }
            defaultPhotoBasename += tokens[tokens.length - 1];
            String absoluteDefaultPhotoFilename = getServlet().getServletContext().getRealPath("/")
                    + defaultPhotoBasename;

            // Set the paper size and margins
            Document document = new Document(PageSize.LETTER, 50, 50, 50, 50);

            // Create the PDF writer
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            PdfWriter.getInstance(document, baos);

            // Add some meta information to the document
            document.addTitle("Progress Report");
            document.addAuthor("OpenMPIS");
            document.addSubject("Progress Report");
            document.addKeywords("OpenMPIS, missing, found, unidentified");
            document.addProducer();
            document.addCreationDate();
            document.addCreator("OpenMPIS version " + Constants.VERSION);

            // Set the header
            String date = simpleDateFormat.format(System.currentTimeMillis());
            document.setHeader(new HeaderFooter(new Phrase("Report for " + person.getFirstName() + " \""
                    + person.getNickname() + "\" " + person.getLastName() + " as of " + date), false));

            // Set the footer
            HeaderFooter footer = new HeaderFooter(new Phrase("Page : "), true);
            footer.setAlignment(Element.ALIGN_CENTER);
            document.setFooter(footer);

            // Open the document for writing
            document.open();
            // Print the information on person
            // Add the banner
            if (person.getType() > 4) {
                Paragraph foundParagraph = new Paragraph("F O U N D",
                        FontFactory.getFont(FontFactory.HELVETICA_BOLD, 36, Font.BOLD, new Color(255, 0, 0)));
                foundParagraph.setAlignment(Paragraph.ALIGN_CENTER);
                document.add(foundParagraph);
            } else {
                Paragraph missingParagraph = new Paragraph("M I S S I N G",
                        FontFactory.getFont(FontFactory.HELVETICA_BOLD, 36, Font.BOLD, new Color(255, 0, 0)));
                missingParagraph.setAlignment(Paragraph.ALIGN_CENTER);
                document.add(missingParagraph);
            }
            // Add date missing or found
            Paragraph blackParagraph = new Paragraph(
                    getResources(request).getMessage("month." + person.getMonthMissingOrFound()) + " "
                            + person.getDayMissingOrFound() + ", " + person.getYearMissingOrFound(),
                    FontFactory.getFont(FontFactory.HELVETICA, 10, Font.BOLD, new Color(0, 0, 0)));
            blackParagraph.setAlignment(Paragraph.ALIGN_CENTER);
            document.add(blackParagraph);
            // Add missing from location
            if (person.getType() < 5) {
                blackParagraph = new Paragraph(
                        person.getMissingFromCity() + ", " + person.getMissingFromProvince(),
                        FontFactory.getFont(FontFactory.HELVETICA, 10, Font.BOLD, new Color(0, 0, 0)));
                blackParagraph.setAlignment(Paragraph.ALIGN_CENTER);
                document.add(blackParagraph);
            }
            // Add name
            Paragraph redParagraph;
            if (!person.getNickname().isEmpty()) {
                redParagraph = new Paragraph(
                        person.getFirstName() + " \"" + person.getNickname() + "\" " + person.getLastName(),
                        FontFactory.getFont(FontFactory.HELVETICA, 12, Font.BOLD, new Color(255, 0, 0)));
            } else {
                redParagraph = new Paragraph(person.getFirstName() + " " + person.getLastName(),
                        FontFactory.getFont(FontFactory.HELVETICA, 12, Font.BOLD, new Color(255, 0, 0)));
            }
            redParagraph.setAlignment(Paragraph.ALIGN_CENTER);
            document.add(redParagraph);
            // Add the photo
            Image image = Image.getInstance(absoluteDefaultPhotoFilename);
            image.scaleAbsolute(200, 300);
            image.setAlignment(Image.ALIGN_CENTER);
            document.add(image);
            // Add description
            redParagraph = new Paragraph("Description",
                    FontFactory.getFont(FontFactory.HELVETICA, 12, Font.BOLD, new Color(255, 0, 0)));
            redParagraph.setAlignment(Paragraph.ALIGN_CENTER);
            document.add(redParagraph);
            float[] widths = { 0.5f, 0.5f };
            PdfPTable pdfptable = new PdfPTable(widths);
            pdfptable.setWidthPercentage(100);
            if (person.getType() < 5) {
                pdfptable
                        .addCell(
                                new Phrase(
                                        getResources(request).getMessage("label.date.birth") + ": "
                                                + getResources(request)
                                                        .getMessage("month." + person.getBirthMonth())
                                                + " " + person.getBirthDay() + ", " + person.getBirthYear(),
                                        FontFactory.getFont(FontFactory.HELVETICA, 12)));
                pdfptable.addCell(new Phrase(
                        getResources(request).getMessage("label.address.city") + ": " + person.getCity(),
                        FontFactory.getFont(FontFactory.HELVETICA, 12)));
            }
            pdfptable.addCell(new Phrase(
                    getResources(request).getMessage("label.sex") + ": "
                            + getResources(request).getMessage("sex." + person.getSex()),
                    FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable
                    .addCell(
                            new Phrase(
                                    getResources(request).getMessage("label.color.hair") + ": "
                                            + getResources(request)
                                                    .getMessage("color.hair." + person.getHairColor()),
                                    FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable
                    .addCell(new Phrase(
                            getResources(request).getMessage("label.height") + ": " + person.getFeet() + "' "
                                    + person.getInches() + "\"",
                            FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable
                    .addCell(
                            new Phrase(
                                    getResources(request).getMessage("label.color.eye") + ": "
                                            + getResources(request)
                                                    .getMessage("color.eye." + person.getEyeColor()),
                                    FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable.addCell(new Phrase(
                    getResources(request).getMessage("label.weight") + ": " + person.getWeight() + " "
                            + getResources(request).getMessage("label.weight.lbs"),
                    FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable.addCell(new Phrase(
                    getResources(request).getMessage("label.race") + ": "
                            + getResources(request).getMessage("race." + person.getRace()),
                    FontFactory.getFont(FontFactory.HELVETICA, 12)));
            document.add(pdfptable);

            // Print information on relative
            Relative relative = relativeService.getRelativeById(person.getRelativeId());

            document.newPage();
            document.add(new Paragraph(getResources(request).getMessage("label.relative.name") + ": "
                    + relative.getFirstName() + " " + relative.getLastName()));
            document.add(new Paragraph(getResources(request).getMessage("label.relation") + ": "
                    + getResources(request).getMessage("relation." + person.getRelationToRelative())));
            document.add(new Paragraph(getResources(request).getMessage("label.address") + ": "
                    + relative.getStreet() + ", " + relative.getCity() + ", " + relative.getProvince()));
            document.add(new Paragraph(
                    getResources(request).getMessage("label.number") + ": " + relative.getNumber()));
            document.add(new Paragraph(
                    getResources(request).getMessage("label.email") + ": " + relative.getEmail()));

            // Print information on abductor
            if (person.getAbductorId() != null) {
                Abductor abductor = abductorService.getAbductorById(person.getAbductorId());

                document.newPage();
                document.add(new Paragraph(getResources(request).getMessage("label.abductor.name") + ": "
                        + abductor.getFirstName() + " " + abductor.getLastName()));
            }

            // Print sightings
            if ((currentUser.getGroupId() == 1) || (currentUser.getGroupId() == 2)) {
                document.setHeader(new HeaderFooter(new Phrase("List of sightings as of " + date), false));
                document.newPage();
                float sightingsWidths[] = { 0.1f, 0.1f, 0.1f, 0.3f, 0.1f, 0.1f, 0.1f, 0.1f };
                pdfptable = new PdfPTable(sightingsWidths);
                pdfptable.setWidthPercentage(100);
                pdfptable.addCell(new Phrase(getResources(request).getMessage("label.id"),
                        FontFactory.getFont(FontFactory.HELVETICA, 12)));
                pdfptable.addCell(new Phrase(getResources(request).getMessage("label.date.sent"),
                        FontFactory.getFont(FontFactory.HELVETICA, 12)));
                pdfptable.addCell(new Phrase(getResources(request).getMessage("label.subject"),
                        FontFactory.getFont(FontFactory.HELVETICA, 12)));
                pdfptable.addCell(new Phrase(getResources(request).getMessage("label.message"),
                        FontFactory.getFont(FontFactory.HELVETICA, 12)));
                pdfptable.addCell(new Phrase(getResources(request).getMessage("label.lastname"),
                        FontFactory.getFont(FontFactory.HELVETICA, 12)));
                pdfptable.addCell(new Phrase(getResources(request).getMessage("label.firstname"),
                        FontFactory.getFont(FontFactory.HELVETICA, 12)));
                pdfptable.addCell(new Phrase(getResources(request).getMessage("label.email"),
                        FontFactory.getFont(FontFactory.HELVETICA, 12)));
                pdfptable.addCell(new Phrase(getResources(request).getMessage("label.ipaddress"),
                        FontFactory.getFont(FontFactory.HELVETICA, 12)));
                List<Message> sightingList = messageService.listAllSightingsForPerson(personId);
                for (Message sighting : sightingList) {
                    pdfptable.addCell(
                            new Phrase("" + sighting.getId(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                    pdfptable.addCell(
                            new Phrase(sighting.getDate(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                    pdfptable.addCell(
                            new Phrase(sighting.getSubject(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                    pdfptable.addCell(
                            new Phrase(sighting.getMessage(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                    pdfptable.addCell(
                            new Phrase(sighting.getLastName(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                    pdfptable.addCell(
                            new Phrase(sighting.getFirstName(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                    pdfptable.addCell(
                            new Phrase(sighting.getEmail(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                    pdfptable.addCell(
                            new Phrase(sighting.getIpAddress(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                }
                document.add(pdfptable);
            }

            // Print progress reports
            if ((currentUser.getGroupId() == 1) || (currentUser.getGroupId() == 2)) {
                document.setHeader(
                        new HeaderFooter(new Phrase("List of progress reports as of " + date), false));
                document.newPage();
                float reportsWidths[] = { 0.1f, 0.1f, 0.3f };
                pdfptable = new PdfPTable(reportsWidths);
                pdfptable.setWidthPercentage(100);
                pdfptable.addCell(new Phrase(getResources(request).getMessage("label.id"),
                        FontFactory.getFont(FontFactory.HELVETICA, 12)));
                pdfptable.addCell(new Phrase(getResources(request).getMessage("label.date.reported"),
                        FontFactory.getFont(FontFactory.HELVETICA, 12)));
                pdfptable.addCell(new Phrase(getResources(request).getMessage("label.report"),
                        FontFactory.getFont(FontFactory.HELVETICA, 12)));
                List<Report> reportList = reportService.listAllReportsForPerson(personId);
                for (Report report : reportList) {
                    pdfptable.addCell(
                            new Phrase("" + report.getId(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                    pdfptable.addCell(
                            new Phrase(report.getDate(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                    pdfptable.addCell(
                            new Phrase(report.getReport(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                }
                document.add(pdfptable);
            }
            document.close();

            // Set the response to return the poster (PDF file)
            response.setContentType("application/pdf");
            response.setContentLength(baos.size());
            response.setHeader("Content-disposition", "attachment; filename=Report.pdf");

            // Close the output stream
            baos.writeTo(response.getOutputStream());
            response.getOutputStream().flush();

            return null;
        } catch (NumberFormatException nfe) {
            return mapping.findForward(Constants.LIST_PERSON);
        } catch (NullPointerException npe) {
            return mapping.findForward(Constants.LIST_PERSON);
        }
    } else {
        return mapping.findForward(Constants.UNAUTHORIZED);
    }
}

From source file:com.googlecode.openmpis.action.UserAction.java

License:Open Source License

/**
 * Writes the users to a PDF file./*from  www.java 2s.c  o  m*/
 *
 * @param mapping       the ActionMapping used to select this instance
 * @param form          the optional ActionForm bean for this request
 * @param request       the HTTP Request we are processing
 * @param response      the HTTP Response we are processing
 * @return              the forwarding instance
 * @throws java.lang.Exception
 */
public ActionForward printUsers(ActionMapping mapping, ActionForm form, HttpServletRequest request,
        HttpServletResponse response) throws Exception {
    User currentUser = null;

    // Check if there exists a session
    if (request.getSession().getAttribute("currentuser") != null) {
        currentUser = (User) request.getSession().getAttribute("currentuser");
    }

    // Set the paper size and margins
    Document document = new Document(PageSize.LETTER.rotate(), 50, 50, 50, 50);

    // Create the PDF writer
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    PdfWriter.getInstance(document, baos);

    // Add some meta information to the document
    document.addTitle("Case Statistics");
    document.addAuthor("OpenMPIS");
    document.addSubject("Statistics for All Cases");
    document.addKeywords("OpenMPIS, missing, found, unidentified");
    document.addProducer();
    document.addCreationDate();
    document.addCreator("OpenMPIS version " + Constants.VERSION);

    // Set the header
    String date = simpleDateFormat.format(System.currentTimeMillis());
    document.setHeader(new HeaderFooter(new Phrase("List of users as of " + date), false));

    // Set the footer
    HeaderFooter footer = new HeaderFooter(new Phrase("Page : "), true);
    footer.setAlignment(Element.ALIGN_CENTER);
    document.setFooter(footer);

    // Open the document for writing
    document.open();
    Table table = new Table(2);
    table.setBorderWidth(1);
    table.setPadding(2);
    table.setSpacing(0);
    Paragraph paragraph = new Paragraph("Users", FontFactory.getFont(FontFactory.HELVETICA, 24, Font.BOLD));
    paragraph.setAlignment(Paragraph.ALIGN_CENTER);
    Cell cell = new Cell(paragraph);
    cell.setHeader(true);
    cell.setColspan(2);
    table.addCell(cell);
    table.endHeaders();
    table.addCell("Total Administrators");
    table.addCell("" + userService.countAdministrators());
    table.addCell("\t\t\t\t\tActive Administrators");
    table.addCell("\t\t\t\t\t\t\t\t\t\t" + userService.countActiveAdministrators());
    table.addCell("\t\t\t\t\tSuspended Administrators");
    table.addCell("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" + userService.countSuspendedAdministrators());
    table.addCell("Total Encoders");
    table.addCell("" + userService.countEncoders());
    table.addCell("\t\t\t\t\tActive Encoders");
    table.addCell("\t\t\t\t\t\t\t\t\t\t" + userService.countActiveEncoders());
    table.addCell("\t\t\t\t\tSuspended Encoders");
    table.addCell("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" + userService.countSuspendedEncoders());
    table.addCell("Total Investigators");
    table.addCell("" + userService.countInvestigators());
    table.addCell("\t\t\t\t\tActive Investigators");
    table.addCell("\t\t\t\t\t\t\t\t\t\t" + userService.countActiveInvestigators());
    table.addCell("\t\t\t\t\tSuspended Investigators");
    table.addCell("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" + userService.countSuspendedInvestigators());
    table.addCell("Total Users");
    table.addCell("" + userService.countAllUsers());
    table.addCell("\t\t\t\t\tTotal Active Users");
    table.addCell("\t\t\t\t\t\t\t\t\t\t" + userService.countActiveUsers());
    table.addCell("\t\t\t\t\tTotal Suspended Users");
    table.addCell("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" + userService.countSuspendedUsers());
    document.add(table);
    if (currentUser != null) {
        if ((currentUser.getGroupId() == 0) || (currentUser.getGroupId() == 1)) {
            // List administrators
            document.setHeader(new HeaderFooter(new Phrase("List of administrators as of " + date), false));
            document.newPage();
            float[] widths = { 0.03f, 0.07f, 0.1f, 0.1f, 0.1f, 0.1f, 0.2f, 0.05f };
            PdfPTable pdfptable = new PdfPTable(widths);
            pdfptable.setWidthPercentage(100);
            pdfptable.addCell(new Phrase("ID", FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable.addCell(new Phrase("Group", FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable.addCell(new Phrase("Last Name", FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable.addCell(new Phrase("First Name", FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable.addCell(new Phrase("Agency", FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable.addCell(new Phrase("Designation", FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable.addCell(new Phrase("E-mail Address", FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable.addCell(new Phrase("Status", FontFactory.getFont(FontFactory.HELVETICA, 12)));
            List<User> administratorList = userService.listAdministrators();
            for (User administrator : administratorList) {
                pdfptable.addCell(
                        new Phrase("" + administrator.getId(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(getResources(request).getMessage("group." + administrator.getGroupId()),
                                FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(administrator.getLastName(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(new Phrase(administrator.getFirstName(),
                        FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(administrator.getAgency(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(new Phrase(administrator.getDesignation(),
                        FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(administrator.getEmail(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(getResources(request).getMessage("status.user." + administrator.getStatus()),
                                FontFactory.getFont(FontFactory.HELVETICA, 8)));
            }
            document.add(pdfptable);

            // List encoders
            document.setHeader(new HeaderFooter(new Phrase("List of encoders as of " + date), false));
            document.newPage();
            pdfptable = new PdfPTable(widths);
            pdfptable.setWidthPercentage(100);
            pdfptable.addCell(new Phrase("ID", FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable.addCell(new Phrase("Group", FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable.addCell(new Phrase("Last Name", FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable.addCell(new Phrase("First Name", FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable.addCell(new Phrase("Agency", FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable.addCell(new Phrase("Designation", FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable.addCell(new Phrase("E-mail Address", FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable.addCell(new Phrase("Status", FontFactory.getFont(FontFactory.HELVETICA, 12)));
            List<User> encoderList = userService.listEncoders();
            for (User encoder : encoderList) {
                pdfptable.addCell(
                        new Phrase("" + encoder.getId(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(new Phrase(getResources(request).getMessage("group." + encoder.getGroupId()),
                        FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(encoder.getLastName(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(encoder.getFirstName(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(encoder.getAgency(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(encoder.getDesignation(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable
                        .addCell(new Phrase(encoder.getEmail(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(getResources(request).getMessage("status.user." + encoder.getStatus()),
                                FontFactory.getFont(FontFactory.HELVETICA, 8)));
            }
            document.add(pdfptable);

            // List investigators
            document.setHeader(new HeaderFooter(new Phrase("List of investigators as of " + date), false));
            document.newPage();
            pdfptable = new PdfPTable(widths);
            pdfptable.setWidthPercentage(100);
            pdfptable.addCell(new Phrase("ID", FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable.addCell(new Phrase("Group", FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable.addCell(new Phrase("Last Name", FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable.addCell(new Phrase("First Name", FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable.addCell(new Phrase("Agency", FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable.addCell(new Phrase("Designation", FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable.addCell(new Phrase("E-mail Address", FontFactory.getFont(FontFactory.HELVETICA, 12)));
            pdfptable.addCell(new Phrase("Status", FontFactory.getFont(FontFactory.HELVETICA, 12)));
            List<User> investigatorList = userService.listInvestigators();
            for (User investigator : investigatorList) {
                pdfptable.addCell(
                        new Phrase("" + investigator.getId(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(getResources(request).getMessage("group." + investigator.getGroupId()),
                                FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(investigator.getLastName(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(investigator.getFirstName(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(investigator.getAgency(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(new Phrase(investigator.getDesignation(),
                        FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(investigator.getEmail(), FontFactory.getFont(FontFactory.HELVETICA, 8)));
                pdfptable.addCell(
                        new Phrase(getResources(request).getMessage("status.user." + investigator.getStatus()),
                                FontFactory.getFont(FontFactory.HELVETICA, 8)));
            }
            document.add(pdfptable);
        }
    }
    document.close();

    // Set the response to return the poster (PDF file)
    response.setContentType("application/pdf");
    response.setContentLength(baos.size());
    response.setHeader("Content-disposition", "attachment; filename=User_Statistics.pdf");

    // Close the output stream
    baos.writeTo(response.getOutputStream());
    response.getOutputStream().flush();

    return null;
}

From source file:com.gp.cong.logisoft.lcl.report.FreightInvoiceLclPdfCreator.java

public void onStartArRedInvoicePage(PdfWriter writer, Document document) {
    try {/*from  ww w . j a v a 2  s . c om*/
        SystemRulesDAO systemRulesDAO = new SystemRulesDAO();
        String companyAddress = systemRulesDAO.getSystemRulesByCode("CompanyAddress");
        String companyPhone = systemRulesDAO.getSystemRulesByCode("CompanyPhone");
        String companyFax = systemRulesDAO.getSystemRulesByCode("CompanyFax");
        PdfPCell cell = new PdfPCell();
        PdfPTable headingMainTable = new PdfPTable(1);
        headingMainTable.setWidthPercentage(100);
        PdfPTable headingTable = new PdfPTable(1);
        headingTable.setWidths(new float[] { 100 });
        PdfPTable imgTable = new PdfPTable(1);
        imgTable.setWidthPercentage(100);
        Image img = null;
        String logoImage = "";
        String brand = this.setBrand(fileNumberId);
        if (CommonUtils.isNotEmpty(brand)) {
            if ("ECI".equalsIgnoreCase(brand)) {
                logoImage = LoadLogisoftProperties.getProperty("application.image.econo.logo");
                img = Image.getInstance(realPath + logoImage);
                img.scalePercent(75);
            } else if ("OTI".equalsIgnoreCase(brand)) {
                logoImage = LoadLogisoftProperties.getProperty("application.image.econo.logo");
                img = Image.getInstance(realPath + logoImage);
                img.scalePercent(45);
            } else {
                logoImage = LoadLogisoftProperties.getProperty("application.image.logo");
                img = Image.getInstance(realPath + logoImage);
                img.scalePercent(45);
            }
        }
        img.scalePercent(75);
        PdfPCell logoCell = new PdfPCell(img);
        logoCell.setBorder(Rectangle.NO_BORDER);
        logoCell.setHorizontalAlignment(Element.ALIGN_LEFT);
        logoCell.setVerticalAlignment(Element.ALIGN_LEFT);
        logoCell.setPaddingLeft(+27);
        imgTable.addCell(logoCell);
        PdfPTable addrTable = new PdfPTable(1);
        addrTable.setWidthPercentage(100);
        PdfPTable invoiceFacturaTable = new PdfPTable(3);
        invoiceFacturaTable.setWidthPercentage(100);
        invoiceFacturaTable.setWidths(new float[] { 40, 20, 40 });
        StringBuilder stringBuilder = new StringBuilder();
        addrTable.addCell(makeCellCenterNoBorderFclBL("MAILING ADDRESS: "
                + (CommonUtils.isNotEmpty(companyAddress) ? companyAddress.toUpperCase() : "")));
        stringBuilder.append("TEL: ");
        stringBuilder.append(CommonUtils.isNotEmpty(companyPhone) ? companyPhone : "").append(" / ");
        stringBuilder.append("FAX: ");
        stringBuilder.append(CommonUtils.isNotEmpty(companyFax) ? companyFax : "");
        addrTable.addCell(makeCellCenterNoBorderFclBL(stringBuilder.toString()));
        addrTable.addCell(makeCellLeftNoBorderFclBL(""));
        addrTable.addCell(makeCellLeftNoBorderFclBL(""));
        invoiceFacturaTable.addCell(makeCellLeftNoBorderFclBL(""));
        cell = makeCell("INVOICE", Element.ALIGN_CENTER, new Font(Font.HELVETICA, 12, Font.BOLD, Color.RED),
                0.06f);
        invoiceFacturaTable.addCell(cell);
        invoiceFacturaTable.addCell(makeCellLeftNoBorderFclBL(""));
        cell = new PdfPCell();
        cell.addElement(invoiceFacturaTable);
        cell.setBorder(0);
        addrTable.addCell(cell);
        addrTable.addCell(makeCellLeftNoBorderFclBL(""));
        addrTable.addCell(makeCellLeftNoBorderFclBL(""));

        cell = new PdfPCell();
        cell.addElement(imgTable);
        cell.setBorder(0);
        cell.setPaddingLeft(+150);
        headingMainTable.addCell(cell);
        //            headingTable.addCell(cell);
        cell = new PdfPCell();
        cell.addElement(addrTable);
        cell.setBorder(0);
        headingTable.addCell(cell);
        cell = makeCellLeftNoBorderFclBL("");
        cell.setBorderWidthRight(0.06f);
        cell.setBorderWidthLeft(0.06f);
        cell.setBorderWidthTop(0.06f);
        cell.setBorderWidthBottom(0.0f);
        cell.addElement(headingTable);
        headingMainTable.addCell(cell);
        document.add(headingMainTable);
    } catch (Exception e) {
        throw new ExceptionConverter(e);
    }
}

From source file:com.gp.cong.logisoft.lcl.report.FreightInvoiceLclPdfCreator.java

public void createImportFreightPdf(String realPath, String unitSsId, String fileId, String fileNumber,
        String outputFileName, String documentName, String voyNotiemailId, User loginUser) throws Exception {
    ImportPortConfigurationDAO importPortConfigurationDAO = new ImportPortConfigurationDAO();
    LclUnitSsDispoDAO lclUnitSsDispoDAO = new LclUnitSsDispoDAO();
    LclUnitSsDAO lclUnitSsDAO = new LclUnitSsDAO();
    LclRemarksDAO lclRemarksDAO = new LclRemarksDAO();
    LclBookingPieceDAO lclBookingPieceDAO = new LclBookingPieceDAO();
    String trmname = "";
    String trmAddress = "";
    String trmZip = "";
    String customerPo = "";
    String unitNo = "";
    String masterBl = "";
    StringBuilder originValues = new StringBuilder();
    StringBuilder destinationValues = new StringBuilder();
    String subHouseBl = "";
    String amsHouseBl = "";
    String shipName = "";
    String consName = "";
    String notyName = "";
    String forwName = "";
    String billToParty = "";
    String billToPartyAc = "";
    Date pickUpDate = null;/*  w  ww . j  a v  a 2 s.c  om*/
    Date vesselEtd = null;
    String billToPartyAcctName = "";
    StringBuilder consAddress = new StringBuilder();

    LclBooking lclBooking = new LCLBookingDAO().findById(Long.valueOf(fileId));
    shipName = null != lclBooking.getShipAcct() ? lclBooking.getShipContact().getCompanyName() : "";
    consName = null != lclBooking.getConsAcct() ? lclBooking.getConsContact().getCompanyName() : "";
    notyName = null != lclBooking.getNotyAcct() ? lclBooking.getNotyContact().getCompanyName() : "";
    forwName = null != lclBooking.getFwdAcct() ? lclBooking.getFwdAcct().getAccountName() : "";

    billToParty = null != lclBooking.getBillToParty() ? lclBooking.getBillToParty() : "";
    if (billToParty.equalsIgnoreCase("C")) {
        billToPartyAc = null != lclBooking.getConsAcct() ? lclBooking.getConsAcct().getAccountno() : "";
        billToPartyAcctName = null != lclBooking.getConsAcct() ? lclBooking.getConsContact().getCompanyName()
                : "";
    } else if (billToParty.equalsIgnoreCase("A")) {
        billToPartyAc = null != lclBooking.getSupAcct() ? lclBooking.getSupAcct().getAccountno() : "";
        billToPartyAcctName = null != lclBooking.getSupAcct() ? lclBooking.getSupAcct().getAccountName() : "";
    } else if (billToParty.equalsIgnoreCase("N")) {
        billToPartyAc = null != lclBooking.getNotyAcct() ? lclBooking.getNotyAcct().getAccountno() : "";
        billToPartyAcctName = null != lclBooking.getNotyAcct() ? lclBooking.getNotyContact().getCompanyName()
                : "";
    } else if (billToParty.equalsIgnoreCase("T")) {
        billToPartyAc = null != lclBooking.getThirdPartyAcct() ? lclBooking.getThirdPartyAcct().getAccountno()
                : "";
        billToPartyAcctName = null != lclBooking.getThirdPartyAcct()
                ? lclBooking.getThirdPartyAcct().getAccountName()
                : "";
    }

    originValues.append(lclUtils.getConcatenatedOriginByUnlocation(lclBooking.getPortOfLoading()));
    destinationValues.append(lclUtils.getConcatenatedOriginByUnlocation(lclBooking.getPortOfDestination()));
    if (lclBooking.getTerminal() != null) {
        RefTerminal terminal = new TerminalDAO()
                .findByTerminalNo(String.valueOf(lclBooking.getTerminal().getTrmnum()));
        trmname = null != terminal ? terminal.getTerminalLocation() : "";
        if (trmname.equalsIgnoreCase("IMPRTS LOS ANGELES")) {
            trmname = "Los Angeles";
        }
        trmAddress = null != terminal ? terminal.getAddres1() : "";
        trmZip = null != terminal ? terminal.getZipcde() : "";
    }
    customerPo = new Lcl3pRefNoDAO().getCustomerPo(fileId);
    CustAddress custAddress = new CustAddressDAO().findByAccountNo(billToPartyAc);
    if (custAddress != null) {
        consAddress.append(billToPartyAcctName).append("\n");
        consAddress.append(custAddress.getAddress1()).append("\n");
        consAddress.append(custAddress.getCity1()).append(" ").append(custAddress.getState()).append(" ")
                .append(custAddress.getZip());
    }
    List<LclBookingPiece> lclBookingPiece = lclBookingPieceDAO.findByProperty("lclFileNumber.id",
            Long.parseLong(fileId));
    LclFileNumber lclFileNumber = new LclFileNumberDAO().getByProperty("id", Long.parseLong(fileId));
    if (lclBookingPiece != null && !lclBookingPiece.isEmpty()
            && CommonUtils.isNotEmpty(lclBookingPiece.get(0).getLclBookingPieceUnitList())) {
        unitNo = lclBookingPiece.get(0).getLclBookingPieceUnitList().get(0).getLclUnitSs().getLclUnit()
                .getUnitNo();
        masterBl = lclBookingPiece.get(0).getLclBookingPieceUnitList().get(0).getLclUnitSs().getLclUnit()
                .getLclUnitSsManifestList().get(0).getMasterbl();
        vesselEtd = lclBookingPiece.get(0).getLclBookingPieceUnitList().get(0).getLclUnitSs().getLclSsHeader()
                .getLclSsDetailList().get(0).getSta();
    }
    Boolean isSegregationFlag = new LclBookingSegregationDao().isCheckedSegregationDr(Long.parseLong(fileId));
    if (isSegregationFlag) {
        amsHouseBl = new LclBookingImportAmsDAO().getAmsNo(fileId);
    } else {
        amsHouseBl = new LclBookingImportAmsDAO().getAmsNoGroup(fileId);
    }
    if (lclFileNumber.getLclBookingImport() != null) {
        subHouseBl = lclFileNumber.getLclBookingImport().getSubHouseBl();
        pickUpDate = lclFileNumber.getLclBookingImport().getPickupDateTime();
    }
    PdfPCell cell = new PdfPCell();
    PdfPTable mainTable = makeTable(2);
    mainTable.setWidthPercentage(100f);
    PdfPTable clientPTable = new PdfPTable(5);
    clientPTable.setWidthPercentage(100f);
    clientPTable.setWidths(new float[] { 25, 25, 17, 11, 22 });
    clientPTable.setKeepTogether(true);
    cell = makeCell("BILL TO ACCOUNT NO.", Element.ALIGN_LEFT, headingFontSize8, 0, Color.decode("#c5d9f1"));
    cell.setBorderWidthTop(0.06f);
    cell.setBorderWidthRight(0.06f);
    clientPTable.addCell(cell);
    cell = makeCell("" + billToPartyAc, Element.ALIGN_LEFT, blackFontForFclAr, 0);
    cell.setBorderWidthTop(0.06f);
    cell.setBorderWidthRight(0.06f);
    clientPTable.addCell(cell);

    cell = makeCell("INVOICE NO.", Element.ALIGN_CENTER, headingFontSize8, 0, Color.decode("#c5d9f1"));
    cell.setBorderWidthTop(0.06f);
    cell.setBorderWidthBottom(0.06f);
    clientPTable.addCell(cell);
    cell = makeCell("DATE", Element.ALIGN_CENTER, headingFontSize8, 0, Color.decode("#c5d9f1"));
    cell.setBorderWidthTop(0.06f);
    cell.setBorderWidthLeft(0.06f);
    cell.setBorderWidthBottom(0.06f);
    clientPTable.addCell(cell);
    cell = makeCell("BILLING TM", Element.ALIGN_CENTER, headingFontSize8, 0, Color.decode("#c5d9f1"));
    cell.setBorderWidthTop(0.06f);
    cell.setBorderWidthLeft(0.06f);
    cell.setBorderWidthRight(0.06f);
    cell.setBorderWidthBottom(0.06f);
    clientPTable.addCell(cell);

    cell = makeCell("" + consAddress.toString(), Element.ALIGN_LEFT, blackFontForFclAr, 0);
    cell.setColspan(2);
    cell.setMinimumHeight(20f);
    cell.setBorderWidthTop(0.06f);
    cell.setBorderWidthRight(0.06f);
    clientPTable.addCell(cell);

    //INVOICE NO
    cell = makeCell(fileNumber, Element.ALIGN_CENTER, blackFontForFclBl, 0);
    clientPTable.addCell(cell);

    //DATE
    String acctNumber = checkPayment(billToPartyAc);
    if (!acctNumber.equals("noCredit")) {
        if (CommonFunctions.isNotNull(acctNumber) && !acctNumber.equals("") && pickUpDate != null) {
            cell = makeCell(DateUtils.formatStringDateToAppFormatMMM(pickUpDate), Element.ALIGN_CENTER,
                    blackFontForFclBl, 0);
        } else if (pickUpDate == null && vesselEtd != null) {
            cell = makeCell(DateUtils.formatStringDateToAppFormatMMM(vesselEtd), Element.ALIGN_CENTER,
                    blackFontForFclBl, 0);
        } else {
            cell = makeCell("", Element.ALIGN_CENTER, blackFontForFclBl, 0);
        }
    } else if (acctNumber.equals("noCredit") && vesselEtd != null) {
        cell = makeCell(DateUtils.formatStringDateToAppFormatMMM(vesselEtd), Element.ALIGN_CENTER,
                blackFontForFclBl, 0);
    } else {
        cell = makeCell("", Element.ALIGN_CENTER, blackFontForFclBl, 0);
    }
    cell.setBorderWidthLeft(0.06f);
    clientPTable.addCell(cell);

    //BILLING TM
    cell = makeCell(trmname, Element.ALIGN_CENTER, blackFontForFclBl, 0);
    cell.setBorderWidthLeft(0.06f);
    clientPTable.addCell(cell);

    cell = makeCell("", Element.ALIGN_CENTER, blackBoldFontSize6, 0);
    cell.setColspan(2);
    clientPTable.addCell(cell);

    cell = makeCell("CUSTOMER REF NO.", Element.ALIGN_CENTER, headingFontSize8, 0, Color.decode("#c5d9f1"));
    cell.setColspan(3);
    cell.setBorderWidthLeft(0.06f);
    cell.setBorderWidthTop(0.06f);
    cell.setBorderWidthBottom(0.06f);
    clientPTable.addCell(cell);

    cell = makeCell("", Element.ALIGN_CENTER, blackBoldFontSize6, 0);
    cell.setColspan(2);
    clientPTable.addCell(cell);
    //CUSTOMER REF NO.
    cell = makeCell(customerPo, Element.ALIGN_CENTER, blackFontForFclBl, 0);
    cell.setColspan(3);
    cell.setMinimumHeight(15f);
    cell.setBorderWidthLeft(0.06f);
    clientPTable.addCell(cell);

    cell = new PdfPCell();
    cell.addElement(clientPTable);
    cell.setColspan(5);
    cell.setBorder(0);
    cell.setPadding(0f);
    cell.setBorderWidthRight(0.06f);
    cell.setBorderWidthLeft(0.06f);
    mainTable.addCell(cell);

    PdfPTable othersTable = makeTable(4);
    othersTable.setWidthPercentage(100f);
    othersTable.setWidths(new float[] { 25, 25, 25, 25 });
    cell = makeCell("CONTAINER NO.", Element.ALIGN_CENTER, blackBoldFontSize6, 0, Color.decode("#c5d9f1"));
    cell.setBorderWidthBottom(0.06f);
    cell.setBorderWidthTop(0.06f);
    cell.setBorderWidthRight(0.06f);
    othersTable.addCell(cell);
    cell = makeCell("ECI SHIPMENT FILE NO.", Element.ALIGN_CENTER, blackBoldFontSize6, 0,
            Color.decode("#c5d9f1"));
    cell.setBorderWidthBottom(0.06f);
    cell.setBorderWidthTop(0.06f);
    cell.setBorderWidthRight(0.06f);
    othersTable.addCell(cell);
    cell = makeCell("ORIGIN", Element.ALIGN_CENTER, blackBoldFontSize6, 0, Color.decode("#c5d9f1"));
    cell.setBorderWidthBottom(0.06f);
    cell.setBorderWidthTop(0.06f);
    cell.setBorderWidthRight(0.06f);
    othersTable.addCell(cell);
    cell = makeCell("DESTINATION", Element.ALIGN_CENTER, blackBoldFontSize6, 0, Color.decode("#c5d9f1"));
    cell.setBorderWidthBottom(0.06f);
    cell.setBorderWidthTop(0.06f);
    othersTable.addCell(cell);
    //CONTAINER NO
    cell = makeCell("" + unitNo, Element.ALIGN_CENTER, blackBoldFontSize6, 0);
    cell.setMinimumHeight(20f);
    cell.setBorderWidthRight(0.06f);
    othersTable.addCell(cell);
    //ECI SHIPMENT FILE NO
    cell = makeCell("IMP-" + fileNumber, Element.ALIGN_CENTER, blackBoldFontSize6, 0);
    cell.setMinimumHeight(20f);
    cell.setBorderWidthRight(0.06f);
    othersTable.addCell(cell);
    //ORIGIN
    cell = makeCell("" + originValues, Element.ALIGN_CENTER, blackBoldFontSize6, 0);
    cell.setMinimumHeight(20f);
    cell.setBorderWidthRight(0.06f);
    othersTable.addCell(cell);
    //DESTINATION
    cell = makeCell("" + destinationValues, Element.ALIGN_CENTER, blackBoldFontSize6, 0);
    cell.setMinimumHeight(20f);
    cell.setBorderWidthRight(0.06f);
    othersTable.addCell(cell);

    cell = makeCell("MBL / AWB NUMBER", Element.ALIGN_CENTER, blackBoldFontSize6, 0, Color.decode("#c5d9f1"));
    cell.setColspan(2);
    cell.setBorderWidthRight(0.06f);
    cell.setBorderWidthTop(0.06f);
    cell.setBorderWidthBottom(0.06f);
    othersTable.addCell(cell);
    cell = makeCell("AMS HOUSE BL", Element.ALIGN_CENTER, blackBoldFontSize6, 0, Color.decode("#c5d9f1"));
    cell.setBorderWidthRight(0.06f);
    cell.setBorderWidthTop(0.06f);
    cell.setBorderWidthBottom(0.06f);
    othersTable.addCell(cell);
    cell = makeCell("SUB HOUSE BL", Element.ALIGN_CENTER, blackBoldFontSize6, 0, Color.decode("#c5d9f1"));
    cell.setBorderWidthTop(0.06f);
    cell.setBorderWidthBottom(0.06f);
    othersTable.addCell(cell);
    //MBL / AWB NUMBER
    cell = makeCell("" + masterBl, Element.ALIGN_CENTER, blackBoldFontSize6, 0);
    cell.setColspan(2);
    cell.setMinimumHeight(20f);
    cell.setBorderWidthRight(0.06f);
    othersTable.addCell(cell);
    //amsHouseBl
    cell = makeCell(amsHouseBl, Element.ALIGN_CENTER, blackBoldFontSize6, 0);
    cell.setMinimumHeight(20f);
    cell.setBorderWidthRight(0.06f);
    othersTable.addCell(cell);
    //subHouseBl
    cell = makeCell(subHouseBl, Element.ALIGN_CENTER, blackBoldFontSize6, 0);
    cell.setMinimumHeight(20f);
    cell.setBorderWidthRight(0.06f);
    othersTable.addCell(cell);

    cell = makeCell("SHIPPER", Element.ALIGN_CENTER, blackBoldFontSize6, 0, Color.decode("#c5d9f1"));
    cell.setColspan(2);
    cell.setBorderWidthRight(0.06f);
    cell.setBorderWidthTop(0.06f);
    cell.setBorderWidthBottom(0.06f);
    othersTable.addCell(cell);
    cell = makeCell("FORWARDER", Element.ALIGN_CENTER, blackBoldFontSize6, 0, Color.decode("#c5d9f1"));
    cell.setColspan(2);
    cell.setBorderWidthTop(0.06f);
    cell.setBorderWidthBottom(0.06f);
    othersTable.addCell(cell);
    //SHIPPER
    cell = makeCell(shipName, Element.ALIGN_CENTER, blackBoldFontSize6, 0);
    cell.setColspan(2);
    cell.setMinimumHeight(20f);
    cell.setBorderWidthRight(0.06f);
    othersTable.addCell(cell);
    //FORWARDER
    cell = makeCell(forwName, Element.ALIGN_CENTER, blackBoldFontSize6, 0);
    cell.setColspan(2);
    cell.setMinimumHeight(20f);
    cell.setBorderWidthRight(0.06f);
    othersTable.addCell(cell);

    cell = makeCell("CONSIGNEE", Element.ALIGN_CENTER, blackBoldFontSize6, 0, Color.decode("#c5d9f1"));
    cell.setColspan(2);
    cell.setBorderWidthRight(0.06f);
    cell.setBorderWidthTop(0.06f);
    cell.setBorderWidthBottom(0.06f);
    othersTable.addCell(cell);

    cell = makeCell("NOTIFY PARTY", Element.ALIGN_CENTER, blackBoldFontSize6, 0, Color.decode("#c5d9f1"));
    cell.setColspan(2);
    cell.setBorderWidthTop(0.06f);
    cell.setBorderWidthBottom(0.06f);
    othersTable.addCell(cell);
    //CONSIGNEE
    cell = makeCell(consName, Element.ALIGN_CENTER, blackBoldFontSize6, 0);
    cell.setColspan(2);
    cell.setMinimumHeight(20f);
    cell.setBorderWidthRight(0.06f);
    othersTable.addCell(cell);
    //NOTIFY PARTY
    cell = makeCell(notyName, Element.ALIGN_CENTER, blackBoldFontSize6, 0);
    cell.setColspan(2);
    cell.setMinimumHeight(20f);
    cell.setBorderWidthRight(0.06f);
    othersTable.addCell(cell);

    cell = new PdfPCell();
    cell.setColspan(2);
    cell.addElement(othersTable);
    cell.setBorder(0);
    cell.setPadding(0f);
    cell.setBorderWidthRight(0.06f);
    cell.setBorderWidthLeft(0.06f);
    mainTable.addCell(cell);

    Font boldHeadingFon = FontFactory.getFont("Arial", 7f, Font.BOLD);
    Paragraph p = null;

    PdfPTable othersTable1 = makeTable(5);
    othersTable1.setWidthPercentage(100f);
    othersTable1.setWidths(new float[] { 2f, 1f, 4f, 1.3f, 1.3f });
    //marks     
    cell = new PdfPCell();
    cell.setBorder(0);
    cell.setBorderWidthBottom(0.6F);
    p = new Paragraph(7f, "MARKS AND NUMBERS", boldHeadingFon);
    p.setAlignment(Element.ALIGN_CENTER);
    cell.setBackgroundColor(Color.decode("#c5d9f1"));
    cell.addElement(p);
    othersTable1.addCell(cell);
    //no of pkgs
    cell = new PdfPCell();
    cell.setBorder(0);
    cell.setBorderWidthBottom(0.6F);
    cell.setBorderWidthLeft(0.6f);
    p = new Paragraph(7f, "NO.OF.PKGS", boldHeadingFon);
    p.setAlignment(Element.ALIGN_CENTER);
    cell.setBackgroundColor(Color.decode("#c5d9f1"));
    cell.addElement(p);
    othersTable1.addCell(cell);
    //desc
    cell = new PdfPCell();
    cell.setBorder(0);
    cell.setBorderWidthBottom(0.6F);
    cell.setBorderWidthLeft(0.6f);
    p = new Paragraph(7f, "DESCRIPTION OF PACKAGES AND GOODS", boldHeadingFon);
    p.setAlignment(Element.ALIGN_CENTER);
    cell.setBackgroundColor(Color.decode("#c5d9f1"));
    cell.addElement(p);
    othersTable1.addCell(cell);
    //grossweight
    cell = new PdfPCell();
    cell.setBorder(0);
    cell.setBorderWidthBottom(0.6F);
    cell.setBorderWidthLeft(0.6f);
    p = new Paragraph(7f, "GROSS WEIGHT", boldHeadingFon);
    p.setAlignment(Element.ALIGN_CENTER);
    cell.setBackgroundColor(Color.decode("#c5d9f1"));
    cell.addElement(p);
    othersTable1.addCell(cell);
    //measure
    cell = new PdfPCell();
    cell.setBorder(0);
    cell.setBorderWidthBottom(0.6F);
    cell.setBorderWidthLeft(0.6f);
    p = new Paragraph(7f, "MEASURE", boldHeadingFon);
    p.setAlignment(Element.ALIGN_CENTER);
    cell.setBackgroundColor(Color.decode("#c5d9f1"));
    cell.addElement(p);
    othersTable1.addCell(cell);

    //        List<LclBookingPiece> lclBookingPiecesList = null;
    //        lclBookingPiecesList = lclBookingPieceDAO.findByProperty("lclFileNumber.id", Long.parseLong(fileId));
    if (lclBookingPiece != null && lclBookingPiece.size() > 0) {
        for (LclBookingPiece lclBookingPieces : lclBookingPiece) {
            //MARKS AND NUMBERS
            cell = new PdfPCell();
            cell.setBorder(0);
            if (lclBookingPieces != null && lclBookingPieces.getMarkNoDesc() != null
                    && !lclBookingPieces.getMarkNoDesc().equals("")) {
                p = new Paragraph(7f, "" + lclBookingPieces.getMarkNoDesc().toUpperCase(),
                        blackNormalCourierFont8f);
            } else {
                p = new Paragraph(7f, "", blackNormalCourierFont8f);
            }
            p.setAlignment(Element.ALIGN_CENTER);
            cell.addElement(p);
            othersTable1.addCell(cell);
            //NO.OF.PKGS
            cell = new PdfPCell();
            cell.setBorder(0);
            cell.setBorderWidthLeft(0.6f);
            if (lclBookingPieces != null && lclBookingPieces.getBookedPieceCount() != null
                    && lclBookingPieces.getPackageType().getAbbr01() != null) {
                p = new Paragraph(7f, "" + lclBookingPieces.getBookedPieceCount() + " "
                        + lclBookingPieces.getPackageType().getAbbr01(), blackNormalCourierFont8f);
            } else {
                p = new Paragraph(7f, "", blackNormalCourierFont8f);
            }
            p.setAlignment(Element.ALIGN_CENTER);
            cell.addElement(p);
            othersTable1.addCell(cell);
            //DESCRIPTION OF PACKAGES AND GOODS
            cell = new PdfPCell();
            cell.setBorder(0);
            cell.setBorderWidthLeft(0.6f);
            if (lclBookingPieces != null && lclBookingPieces.getPieceDesc() != null
                    && !lclBookingPieces.getPieceDesc().equals("")) {
                p = new Paragraph(7f, "" + lclBookingPieces.getPieceDesc().toUpperCase(),
                        blackNormalCourierFont8f);
            } else {
                p = new Paragraph(7f, "", blackNormalCourierFont8f);
            }
            p.setAlignment(Element.ALIGN_CENTER);
            cell.addElement(p);
            othersTable1.addCell(cell);

            //grossweight
            cell = new PdfPCell();

            cell.setBorder(0);
            cell.setBorderWidthLeft(0.6f);
            if (lclBookingPieces != null && lclBookingPieces.getBookedWeightMetric() != null) {
                p = new Paragraph(7f, "" + lclBookingPieces.getBookedWeightMetric() + " KGS",
                        blackNormalCourierFont8f);
            } else {
                p = new Paragraph(7f, "", blackNormalCourierFont8f);
            }
            p.setAlignment(Element.ALIGN_CENTER);
            cell.addElement(p);
            othersTable1.addCell(cell);
            //measure
            cell = new PdfPCell();
            cell.setBorder(0);
            cell.setBorderWidthLeft(0.6f);
            if (lclBookingPieces != null && lclBookingPieces.getBookedVolumeMetric() != null) {
                p = new Paragraph(7f, "" + lclBookingPieces.getBookedVolumeMetric() + " CBM",
                        blackNormalCourierFont8f);
            } else {
                p = new Paragraph(7f, "", blackNormalCourierFont8f);
            }
            p.setAlignment(Element.ALIGN_CENTER);
            cell.addElement(p);
            othersTable1.addCell(cell);
            //2nd cell
            cell = new PdfPCell();
            cell.setBorder(0);
            p = new Paragraph(7f, "", blackNormalCourierFont8f);
            p.setAlignment(Element.ALIGN_CENTER);
            cell.addElement(p);
            othersTable1.addCell(cell);

            cell = new PdfPCell();
            cell.setBorder(0);
            cell.setBorderWidthLeft(0.6f);
            p = new Paragraph(7f, "", blackNormalCourierFont8f);
            p.setAlignment(Element.ALIGN_CENTER);

            cell.addElement(p);
            othersTable1.addCell(cell);

            cell = new PdfPCell();
            cell.setBorder(0);
            cell.setBorderWidthLeft(0.6f);
            p = new Paragraph(7f, "", blackNormalCourierFont8f);
            p.setAlignment(Element.ALIGN_CENTER);
            cell.addElement(p);
            othersTable1.addCell(cell);

            cell = new PdfPCell();
            cell.setBorder(0);
            cell.setBorderWidthLeft(0.6f);
            p = new Paragraph(7f, "", blackNormalCourierFont8f);
            p.setAlignment(Element.ALIGN_CENTER);
            cell.addElement(p);
            othersTable1.addCell(cell);

            cell = new PdfPCell();
            cell.setBorder(0);
            cell.setBorderWidthLeft(0.6f);
            p = new Paragraph(7f, "", blackNormalCourierFont8f);
            p.setAlignment(Element.ALIGN_CENTER);
            cell.addElement(p);
            othersTable1.addCell(cell);

            //3rd cell
            cell = new PdfPCell();
            cell.setBorder(0);
            p = new Paragraph(7f, "", blackNormalCourierFont8f);
            p.setAlignment(Element.ALIGN_CENTER);
            cell.addElement(p);
            othersTable1.addCell(cell);

            cell = new PdfPCell();
            cell.setBorder(0);
            cell.setBorderWidthLeft(0.6f);
            p = new Paragraph(7f, "", blackNormalCourierFont8f);
            p.setAlignment(Element.ALIGN_CENTER);
            cell.addElement(p);
            othersTable1.addCell(cell);

            cell = new PdfPCell();
            cell.setBorder(0);
            cell.setBorderWidthLeft(0.6f);
            p = new Paragraph(7f, "", blackNormalCourierFont8f);
            p.setAlignment(Element.ALIGN_CENTER);
            cell.addElement(p);
            othersTable1.addCell(cell);

            cell = new PdfPCell();
            cell.setBorder(0);
            cell.setBorderWidthLeft(0.6f);
            if (lclBookingPieces != null && lclBookingPieces.getBookedWeightImperial() != null) {
                p = new Paragraph(7f, "" + lclBookingPieces.getBookedWeightImperial() + " LBS",
                        blackNormalCourierFont8f);
            } else {
                p = new Paragraph(7f, "", blackNormalCourierFont8f);
            }
            p.setAlignment(Element.ALIGN_CENTER);
            cell.addElement(p);
            othersTable1.addCell(cell);

            cell = new PdfPCell();
            cell.setBorder(0);
            cell.setBorderWidthLeft(0.6f);
            if (lclBookingPieces != null && lclBookingPieces.getBookedVolumeImperial() != null) {
                p = new Paragraph(7f, "" + lclBookingPieces.getBookedVolumeImperial() + " CFT",
                        blackNormalCourierFont8f);
            } else {
                p = new Paragraph(7f, "", blackNormalCourierFont8f);
            }
            p.setAlignment(Element.ALIGN_CENTER);
            cell.addElement(p);
            othersTable1.addCell(cell);
        }

    }

    cell = new PdfPCell();
    cell.setColspan(5);
    cell.addElement(othersTable1);
    cell.setBorder(0);
    cell.setPadding(0f);
    cell.setBorderWidthRight(0.06f);
    cell.setBorderWidthLeft(0.06f);
    cell.setBorderWidthTop(0.06f);
    mainTable.addCell(cell);

    PdfPTable chargesTable = makeTable(4);
    chargesTable.setWidthPercentage(100.5f);
    chargesTable.setWidths(new float[] { 45, 35, 5, 15 });
    cell = makeCell("DESCRIPTION", Element.ALIGN_CENTER, headingFont, 0, Color.decode("#c5d9f1"));
    cell.setBorderWidthTop(0.06f);
    cell.setBorderWidthRight(0.06f);
    cell.setBorderWidthBottom(0.06f);
    cell.setColspan(2);
    chargesTable.addCell(cell);
    cell = makeCell("CHARGES", Element.ALIGN_CENTER, headingFont, 0, Color.decode("#c5d9f1"));
    cell.setColspan(2);
    cell.setBorderWidthTop(0.06f);
    cell.setBorderWidthBottom(0.06f);
    chargesTable.addCell(cell);

    NumberFormat number = new DecimalFormat("###,###,##0.00");
    String code = "";
    //        double totalCharges = 0.00;
    double lateFee = 0.00;
    double payAmount = 0.00;
    int chargeCount = 0;
    double total = 0.00;
    String[] billToPartyA;
    billToPartyA = new String[] { "C", "N", "T" };
    List<String> billtoPartyList = Arrays.asList(billToPartyA);
    List<BookingChargesBean> lclBookingAcList = null;
    lclBookingAcList = new LclCostChargeDAO().findBybookingAcId(fileId, billtoPartyList);
    for (int j = 0; j < lclBookingAcList.size(); j++) {
        chargeCount++;
        BookingChargesBean lclBookingAc = (BookingChargesBean) lclBookingAcList.get(j);

        String codeDesc = "";

        code = CommonUtils.isNotEmpty(lclBookingAc.getChargeCode()) ? lclBookingAc.getChargeCode() : "";
        codeDesc = new GenericCodeDAO().getGenericCodeDesc(code);

        if (CommonUtils.isNotEmpty(lclBookingAc.getChargeCode())) {
            //                    String desc = lclBookingAc.getChargeCode().toUpperCase();

            cell = makeCell("", Element.ALIGN_CENTER, blackFontForFclBl);
            cell.setBorderWidthRight(0.0f);
        }

        if (chargeCount == 1) {
            cell.setBorderWidthTop(0.0f);
            cell.setBorderWidthRight(0.0f);
            cell.setBorderWidthLeft(0.0f);
            cell.setBorderWidthBottom(0.0f);
        } else {
            cell.setBorderWidthRight(0.0f);
            cell.setBorderWidthLeft(0.0f);
            cell.setBorderWidthBottom(0.0f);
        }
        chargesTable.addCell(cell);

        if (CommonUtils.isNotEmpty(codeDesc)) {
            cell = makeCell("" + codeDesc, Element.ALIGN_LEFT, blackFontForFclBl, 0.06f);
            cell.setBorderWidthLeft(0.0f);
        } else {
            cell = makeCell("" + code, Element.ALIGN_LEFT, blackFontForFclBl, 0.06f);
            cell.setBorderWidthLeft(0.0f);
        }
        if (chargeCount == 1) {
            cell.setBorderWidthTop(0.0f);
            cell.setBorderWidthRight(0.0f);
            cell.setBorderWidthBottom(0.0f);
        } else {
            cell.setBorderWidthRight(0.0f);
            cell.setBorderWidthBottom(0.0f);
        }

        chargesTable.addCell(cell);

        cell = makeCell("$", Element.ALIGN_CENTER, blackFontForFclBl, 0.06f);//3
        if (chargeCount == 1) {
            cell.setBorderWidthTop(0.0f);
            cell.setBorderWidthRight(0.0f);
            cell.setBorderWidthBottom(0.0f);
        } else {
            cell.setBorderWidthRight(0.0f);
            cell.setBorderWidthBottom(0.0f);
        }
        chargesTable.addCell(cell);
        cell = makeCell(number.format(lclBookingAc.getTotalAmt().doubleValue()), Element.ALIGN_RIGHT,
                blackFontForFclBl, Rectangle.BOX);//4
        if (chargeCount == 1) {
            cell.setBorderWidth(0.0f);
        } else {
            cell.setBorderWidthLeft(0.0f);
            cell.setBorderWidthRight(0.0f);
            cell.setBorderWidthBottom(0.0f);
        }
        chargesTable.addCell(cell);
        total = total + lclBookingAc.getTotalAmt().doubleValue();

    }

    for (int i = 0; i < (14 - chargeCount); i++) {
        //            chargesTable.addCell(makeCellLeftNoBorderFclBL(""));
        //            chargesTable.addCell(makeCellRightNoBorderFclBL(""));
        cell = makeCell("", Element.ALIGN_LEFT, blackFontForFclBl, 0.06f);
        cell.setBorderWidthRight(0.0f);
        cell.setBorderWidthBottom(0.0f);
        cell.setBorderWidthLeft(0.0f);
        chargesTable.addCell(cell);

        cell = makeCell("", Element.ALIGN_CENTER, blackFontForFclBl, 0.06f);
        cell.setBorderWidthRight(0.0f);
        cell.setBorderWidthBottom(0.0f);
        cell.setBorderWidthLeft(0.0f);
        chargesTable.addCell(cell);
        cell = makeCell("", Element.ALIGN_CENTER, blackFontForFclBl, 0.06f);
        cell.setBorderWidthRight(0.0f);
        cell.setBorderWidthBottom(0.0f);
        chargesTable.addCell(cell);
        cell = makeCell("", Element.ALIGN_RIGHT, blackFontForFclBl, 0.06f);
        cell.setBorderWidthLeft(0.0f);
        cell.setBorderWidthRight(0.0f);
        cell.setBorderWidthBottom(0.0f);
        cell.setMinimumHeight(10f);
        chargesTable.addCell(cell);
    }
    cell = makeCell("", Element.ALIGN_LEFT, blackFontForFclBl, 0);
    cell.setBorderWidthTop(0.06f);
    chargesTable.addCell(cell);
    cell = makeCell("INVOICE TOTAL", Element.ALIGN_CENTER, blackFontForFclBl, 0);
    //        cell.setPaddingLeft(-15f);
    cell.setBorderWidthTop(0.06f);
    cell.setBorderWidthBottom(0.06f);
    cell.setBorderWidthLeft(0.06f);
    cell.setBorderWidthRight(0.06f);
    chargesTable.addCell(cell);
    cell = makeCell("$", Element.ALIGN_CENTER, blackFontForFclBl, 0);
    cell.setBorderWidthTop(0.06f);
    cell.setBorderWidthBottom(0.06f);
    chargesTable.addCell(cell);
    cell = makeCell(number.format(total), Element.ALIGN_RIGHT, blackFontForFclBl, 0);//4
    cell.setBorderWidthTop(0.06f);
    cell.setBorderWidthBottom(0.06f);
    chargesTable.addCell(cell);
    cell = makeCell("", Element.ALIGN_CENTER, blackFontForFclBl, 0);
    cell.setColspan(4);
    chargesTable.addCell(cell);
    chargesTable.setKeepTogether(true);
    cell = new PdfPCell();
    cell.setColspan(2);
    cell.addElement(chargesTable);
    cell.setBorder(0);
    cell.setBorderWidthRight(0.06f);
    cell.setBorderWidthLeft(0.06f);
    mainTable.addCell(cell);
    //        
    payAmount = total;
    //        String acctNumber = checkPayment(billToPartyAc);
    boolean lateFeeFlag = false;
    TradingPartnerBC tradingPartnerBC = new TradingPartnerBC();
    TradingPartner tradingPartner = null;
    //        SimpleDateFormat simpDate = new SimpleDateFormat("dd-MMM-yyyy");
    PdfPTable paidTable = makeTable(6);
    paidTable.setWidthPercentage(100.5f);
    paidTable.setWidths(new float[] { 30, 15, 25, 10, 5, 15 });
    if (CommonFunctions.isNotNull(acctNumber) && !acctNumber.equals("") && !acctNumber.equals("noCredit")) {
        tradingPartner = tradingPartnerBC.findTradingPartnerById(acctNumber);
        if (CommonFunctions.isNotNullOrNotEmpty(tradingPartner.getAccounting())) {
            for (Iterator accountingList = tradingPartner.getAccounting().iterator(); accountingList
                    .hasNext();) {
                CustomerAccounting customerAccounting = (CustomerAccounting) accountingList.next();
                if (null != customerAccounting.getLclApplyLateFee()
                        && customerAccounting.getLclApplyLateFee().equals("on")) {
                    lateFeeFlag = true;
                }
                break;
            }
        }
    }

    cell = makeCell("ARRIVAL DATE", Element.ALIGN_CENTER, headingFontSize8, 0, Color.decode("#c5d9f1"));
    cell.setBorderWidthTop(0.06f);
    cell.setBorderWidthRight(0.06f);
    cell.setBorderWidthBottom(0.06f);
    paidTable.addCell(cell);

    SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy");
    String outDate = "";
    String crtDate = "";

    if (vesselEtd != null) { //vessel arrivalDate         
        outDate = sdf.format(vesselEtd);
    }
    cell = makeCell("", Element.ALIGN_LEFT, blackFontForFclBl, 0);
    paidTable.addCell(cell);
    CustomerAccounting customerAccounting = new CustomerAccountingDAO().findByProperty("accountNo",
            billToPartyAc);

    if (customerAccounting != null && (customerAccounting.getCreditRate() != null
            && (CommonUtils.isNotEmpty(outDate)) && !acctNumber.equals("noCredit"))) {
        Calendar c = Calendar.getInstance();
        //            c.setTime(new Date(outDate)); //  Removed Deprecated Warning
        c.setTime(sdf.parse(outDate)); //   Now use previous date.
        if ((customerAccounting.getCreditRate().getCodedesc()).equalsIgnoreCase("Net 7 Days")) {
            c.add(Calendar.DATE, 7);
            crtDate = sdf.format(c.getTime());// Adding 7 days
        } else if ((customerAccounting.getCreditRate().getCodedesc()).equalsIgnoreCase("Net 15 Days")) {
            c.add(Calendar.DATE, 15);
            crtDate = sdf.format(c.getTime());// Adding 15 days
        } else if ((customerAccounting.getCreditRate().getCodedesc()).equalsIgnoreCase("NET 21 DAYS")) {
            c.add(Calendar.DATE, 21);
            crtDate = sdf.format(c.getTime());// Adding 21 days
        } else if ((customerAccounting.getCreditRate().getCodedesc()).equalsIgnoreCase("Net 30 Days")) {
            c.add(Calendar.DATE, 30);
            crtDate = sdf.format(c.getTime());// Adding 30 days
        } else if ((customerAccounting.getCreditRate().getCodedesc()).equalsIgnoreCase("Net 45 Days")) {
            c.add(Calendar.DATE, 45);
            crtDate = sdf.format(c.getTime());// Adding 45 days
        } else if ((customerAccounting.getCreditRate().getCodedesc()).equalsIgnoreCase("Net 60 Days")) {
            c.add(Calendar.DATE, 60);
            crtDate = sdf.format(c.getTime());// Adding 60 days
        }
    }

    if (lateFeeFlag) {
        lateFee = total * 0.015; // 1.5percent calculate
        payAmount = total + lateFee;
        cell = makeCell("LATE FEE IF NOT PAID BY - " + crtDate, Element.ALIGN_LEFT, blackFontForFclBl, 0);
        cell.setColspan(2);
        cell.setBorderWidthTop(0.06f);
        cell.setBorderWidthLeft(0.06f);
        paidTable.addCell(cell);

        cell = makeCell("$", Element.ALIGN_CENTER, blackFontForFclBl, 0);
        cell.setBorderWidthTop(0.06f);
        cell.setBorderWidthLeft(0.06f);
        paidTable.addCell(cell);
        cell = makeCell(number.format(lateFee), Element.ALIGN_RIGHT, blackFontForFclBl, 0);
        cell.setBorderWidthTop(0.06f);
        paidTable.addCell(cell);

        cell = makeCell(outDate, Element.ALIGN_CENTER, blackFontForFclBl, 0);
        cell.setMinimumHeight(10f);
        cell.setBorderWidthBottom(0.06f);
        cell.setBorderWidthRight(0.06f);
        paidTable.addCell(cell);

        cell = makeCell("", Element.ALIGN_CENTER, blackFontForFclBl, 0);
        paidTable.addCell(cell);

        cell = makeCell("PAY THIS AMOUNT IF NOT PAID BY DUE DATE", Element.ALIGN_LEFT, blackFontForFclBl, 0);
        cell.setBorderWidthBottom(0.06f);
        cell.setBorderWidthLeft(0.06f);
        cell.setBorderWidthTop(0.06f);
        cell.setColspan(2);
        paidTable.addCell(cell);
        cell = makeCell("$", Element.ALIGN_CENTER, blackFontForFclBl, 0);
        cell.setBorderWidthBottom(0.06f);
        cell.setBorderWidthLeft(0.06f);
        cell.setBorderWidthTop(0.06f);
        paidTable.addCell(cell);
        cell = makeCell(number.format(payAmount), Element.ALIGN_RIGHT, blackFontForFclBl, 0);
        cell.setBorderWidthBottom(0.06f);
        cell.setBorderWidthTop(0.06f);
        paidTable.addCell(cell);
    } else {
        //            String dueDate = "";
        //            if(arRedInvoice.getDueDate() != null){
        //            SimpleDateFormat sdfa = new SimpleDateFormat("dd-MMM-yyyy");
        //            dueDate = sdfa.format(arRedInvoice.getDueDate());
        //        }

        //            cell = makeCell(!"".equals(dueDate) ? "PAY THIS AMOUNT IF NOT PAID BY - " + dueDate : "PLEASE PAY THIS AMOUNT",Element.ALIGN_LEFT, blackFontForFclBl, 0);
        cell = makeCell("", Element.ALIGN_CENTER, blackFontForFclBl, 0);
        cell.setColspan(4);
        paidTable.addCell(cell);

        cell = makeCell(outDate, Element.ALIGN_CENTER, blackFontForFclBl, 0);
        cell.setMinimumHeight(10f);
        cell.setBorderWidthBottom(0.06f);
        cell.setBorderWidthRight(0.06f);
        paidTable.addCell(cell);

        cell = makeCell("", Element.ALIGN_CENTER, blackFontForFclBl, 0);
        paidTable.addCell(cell);

        cell = makeCell("PLEASE PAY THIS AMOUNT - " + crtDate, Element.ALIGN_LEFT, blackFontForFclBl, 0);
        cell.setBorderWidthBottom(0.06f);
        cell.setBorderWidthLeft(0.06f);
        cell.setBorderWidthTop(0.06f);
        cell.setColspan(2);
        paidTable.addCell(cell);
        cell = makeCell("$", Element.ALIGN_CENTER, blackFontForFclBl, 0);
        cell.setBorderWidthBottom(0.06f);
        cell.setBorderWidthLeft(0.06f);
        cell.setBorderWidthTop(0.06f);
        paidTable.addCell(cell);
        cell = makeCell(number.format(total), Element.ALIGN_RIGHT, blackFontForFclBl, 0);
        cell.setBorderWidthBottom(0.06f);
        cell.setBorderWidthTop(0.06f);
        paidTable.addCell(cell);
    }
    cell = makeCell("", Element.ALIGN_CENTER, blackFontForFclBl, 0);
    cell.setColspan(5);
    paidTable.addCell(cell);

    //paidTable.setKeepTogether(true);
    cell = new PdfPCell();
    cell.setColspan(2);
    cell.addElement(paidTable);
    cell.setBorder(0);
    cell.setBorderWidthRight(0.06f);
    cell.setBorderWidthLeft(0.06f);
    mainTable.addCell(cell);

    ///end of description & charges
    //        String paymentStatment = "";
    //        paymentStatment = checkPayment(arRedInvoice);
    PdfPTable commandTable = new PdfPTable(1);
    commandTable.setWidthPercentage(100);
    cell = makeCell("", Element.ALIGN_CENTER, headingFont, Rectangle.NO_BORDER);
    commandTable.addCell(cell);
    cell = makeCell("", Element.ALIGN_CENTER, headingFont, Rectangle.NO_BORDER);
    commandTable.addCell(cell);

    if (customerAccounting != null
            && (customerAccounting.getCreditRate() != null && (CommonUtils.isNotEmpty(outDate)))) {
        if ((customerAccounting.getCreditRate().getCodedesc()).equalsIgnoreCase("Due Upon Receipt")) {
            cell = makeCell("INVOICE IS PAYABLE UPON RECEIPT", Element.ALIGN_CENTER, blackFontForFclBl, 0,
                    Color.decode("#FFFF00"));
            commandTable.addCell(cell);
        } else {
            cell = makeCell("INVOICE PAYABLE ON OR BEFORE  " + (crtDate), Element.ALIGN_CENTER,
                    new Font(Font.HELVETICA, 10, Font.BOLDITALIC, Color.BLACK), Rectangle.NO_BORDER);
            commandTable.addCell(cell);
        }
    } else {
        cell = makeCell("INVOICE IS PAYABLE UPON RECEIPT", Element.ALIGN_CENTER, blackFontForFclBl, 0,
                Color.decode("#FFFF00"));
        commandTable.addCell(cell);
    }
    //        if (lateFeeFlag == false) {//if(paymentStatment.equals("noCredit") || lateFeeFlag == false){
    //            cell = makeCell("INVOICE IS PAYABLE UPON RECEIPT OR INVOICE PAYABLE WITHIN 30 DAYS FROM DEPARTURE/ARRIVAL DATE", Element.ALIGN_LEFT, blackFontForFclBl, 0, Color.decode("#FFFF00"));
    //            commandTable.addCell(cell);
    //        } else {
    //            cell = makeCell("", Element.ALIGN_CENTER, headingFont, Rectangle.NO_BORDER);
    //            commandTable.addCell(cell);
    //        }
    cell = makeCell("", Element.ALIGN_CENTER, headingFont, Rectangle.NO_BORDER);
    commandTable.addCell(cell);
    cell = makeCell("", Element.ALIGN_CENTER, headingFont, Rectangle.NO_BORDER);
    commandTable.addCell(cell);
    cell = makeCell("", Element.ALIGN_CENTER, headingFont, Rectangle.NO_BORDER);
    commandTable.addCell(cell);
    cell = makeCell("", Element.ALIGN_CENTER, headingFont, Rectangle.NO_BORDER);
    commandTable.addCell(cell);
    cell = new PdfPCell();
    cell.setColspan(2);
    cell.addElement(commandTable);
    cell.setBorder(0);
    cell.setBorderWidthRight(0.06f);
    cell.setBorderWidthLeft(0.06f);
    cell.setExtraParagraphSpace(10f);
    mainTable.addCell(cell);

    PdfPTable bankDetailsTable = makeTable(4);
    bankDetailsTable.setWidthPercentage(100f);
    bankDetailsTable.setWidths(new float[] { 3f, 1f, 4f, 2.6f });

    //
    //        SystemRulesDAO systemRulesDAO = new SystemRulesDAO();
    //        String eftBank = systemRulesDAO.getSystemRulesByCode("EFTBank");
    //        String eftBankAddress = systemRulesDAO.getSystemRulesByCode("EFTBankAddress");
    //        String eftABANo = systemRulesDAO.getSystemRulesByCode("EFTABANo");
    //        String eftAcctName = systemRulesDAO.getSystemRulesByCode("EFTAcctName");
    //        String eftAccountNo = systemRulesDAO.getSystemRulesByCode("EFTAccountNo");
    //        CompanyModel company = systemRulesDAO.getCompanyDetails();

    //PAYMENT METHODS
    cell = new PdfPCell();
    cell.setBorder(0);
    cell.setBorderWidthBottom(0.6F);
    cell.setBorderWidthRight(0.6f);
    cell.setBorderWidthTop(0.6f);
    p = new Paragraph(7f, "PAYMENT METHODS", boldHeadingFon);
    p.setAlignment(Element.ALIGN_CENTER);
    cell.setBackgroundColor(Color.decode("#c5d9f1"));
    cell.addElement(p);
    bankDetailsTable.addCell(cell);
    // Empty

    cell = makeCell("", Element.ALIGN_CENTER, blackBoldFontSize6, 0);
    cell.setColspan(3);
    cell.setBorderWidthBottom(0.06f);
    bankDetailsTable.addCell(cell);

    //Via Check
    cell = new PdfPCell();
    cell.setBorder(0);
    cell.setColspan(2);
    cell.setBorderWidthBottom(0.6F);
    cell.setBorderWidthLeft(0.6f);
    p = new Paragraph(7f, "Via Check", boldHeadingFon);
    p.setAlignment(Element.ALIGN_CENTER);
    cell.setBackgroundColor(Color.decode("#c5d9f1"));
    cell.addElement(p);
    bankDetailsTable.addCell(cell);
    //Via ACH or Wire Transfer
    cell = new PdfPCell();
    cell.setBorder(0);
    cell.setBorderWidthBottom(0.6F);
    cell.setBorderWidthLeft(0.6f);
    p = new Paragraph(7f, "Via ACH or Wire Transfer", boldHeadingFon);
    p.setAlignment(Element.ALIGN_CENTER);
    cell.setBackgroundColor(Color.decode("#c5d9f1"));
    cell.addElement(p);
    bankDetailsTable.addCell(cell);
    //Credit Card Payments
    cell = new PdfPCell();
    cell.setBorder(0);
    cell.setBorderWidthBottom(0.6F);
    cell.setBorderWidthLeft(0.6f);
    p = new Paragraph(7f, "Credit Card Payments", boldHeadingFon);
    p.setAlignment(Element.ALIGN_CENTER);
    cell.setBackgroundColor(Color.decode("#c5d9f1"));
    cell.addElement(p);
    bankDetailsTable.addCell(cell);

    // Via Check Details
    cell = new PdfPCell();
    cell.setBorder(0);
    cell.setBorderWidthRight(0.06f);
    cell.setBorderWidthBottom(0.06f);
    cell.setColspan(2);
    p = new Paragraph(10f, "PLEASE REMIT PAYMENT TO", boldHeadingFon);
    p.setAlignment(Element.ALIGN_LEFT);
    cell.addElement(p);

    p = new Paragraph(10f, companyName, boldHeadingFon);
    p.setAlignment(Element.ALIGN_LEFT);
    cell.addElement(p);
    String creditStatusDomain = "";
    if (null != customerAccounting && null != customerAccounting.getCreditStatus()) {//no credit
        creditStatusDomain = customerAccounting.getCreditStatus().getCodedesc();
        if (!("No Credit").equalsIgnoreCase(creditStatusDomain)) {
            p = new Paragraph(10f, "2401 N.W. 69TH STREET", boldHeadingFon);
            p.setAlignment(Element.ALIGN_LEFT);
            cell.addElement(p);
            p = new Paragraph(10f, "Miami, FL  33147", boldHeadingFon);
            p.setAlignment(Element.ALIGN_LEFT);
            cell.addElement(p);
            bankDetailsTable.addCell(cell);
        } else {
            p = new Paragraph(10f, "" + trmAddress, boldHeadingFon);
            p.setAlignment(Element.ALIGN_LEFT);
            cell.addElement(p);
            p = new Paragraph(10f, "" + trmname + " " + trmZip, boldHeadingFon);
            p.setAlignment(Element.ALIGN_LEFT);
            cell.addElement(p);
            bankDetailsTable.addCell(cell);
        }
    }

    //Via ACH or Wire Transfer Details

    cell = new PdfPCell();
    cell.setBorder(0);
    cell.setBorderWidthRight(0.06f);
    p = new Paragraph(10f, "Bank: " + company.getBankName(), boldHeadingFon);
    p.setAlignment(Element.ALIGN_LEFT);
    cell.addElement(p);
    p = new Paragraph(10f, company.getBankAddress(), boldHeadingFon);
    p.setAlignment(Element.ALIGN_LEFT);
    cell.addElement(p);
    p = new Paragraph(10f, "ABA: " + company.getBankAbaNumber(), boldHeadingFon);
    p.setAlignment(Element.ALIGN_LEFT);
    cell.addElement(p);
    p = new Paragraph(10f, "ACCT: " + companyName, boldHeadingFon);
    p.setAlignment(Element.ALIGN_LEFT);
    cell.addElement(p);
    p = new Paragraph(10f, "ACCOUNT NO: " + company.getBankAccountNumber(), boldHeadingFon);
    p.setAlignment(Element.ALIGN_LEFT);
    cell.addElement(p);
    bankDetailsTable.addCell(cell);

    //Credit Card Payments Details
    cell = new PdfPCell();
    cell.setBorder(0);
    cell.setBorderWidthRight(0.06f);
    p = new Paragraph(10f, "If paying via Credit card", boldHeadingFon);
    p.setAlignment(Element.ALIGN_LEFT);
    cell.addElement(p);
    p = new Paragraph(10f, " Please go to:", boldHeadingFon);
    p.setAlignment(Element.ALIGN_LEFT);
    cell.addElement(p);
    p = new Paragraph(10f, webSite, fileNoFont);
    p.setAlignment(Element.ALIGN_LEFT);
    cell.addElement(p);
    bankDetailsTable.addCell(cell);

    cell = new PdfPCell();
    cell.setColspan(4);
    cell.addElement(bankDetailsTable);
    cell.setBorder(0);
    cell.setPadding(0f);
    cell.setBorderWidthRight(0.06f);
    cell.setBorderWidthLeft(0.06f);
    cell.setBorderWidthBottom(0.06f);
    mainTable.addCell(cell);

    document.add(mainTable);

}

From source file:com.gtdfree.test.TableBorders.java

License:Open Source License

/**
 * Demonstrates different borderstyles./*  ww w .  j av  a  2s .c  o m*/
 * 
 * @param args
 *            the number of rows for each table fragment.
 */
public static void main(String[] args) {

    System.out.println("Table Borders");
    // step1
    Document document = new Document(PageSize.A4, 50, 50, 50, 50);
    try {
        // step2
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("TableBorders.pdf"));
        // step3
        document.open();
        // step4

        // page 1
        Font tableFont = FontFactory.getFont("Helvetica", 8, Font.BOLD, Color.BLACK);
        float padding = 0f;
        Rectangle border = new Rectangle(0f, 0f);
        border.setBorderWidthLeft(6f);
        border.setBorderWidthBottom(5f);
        border.setBorderWidthRight(4f);
        border.setBorderWidthTop(2f);
        border.setBorderColorLeft(Color.RED);
        border.setBorderColorBottom(Color.ORANGE);
        border.setBorderColorRight(Color.YELLOW);
        border.setBorderColorTop(Color.GREEN);
        makeTestPage(tableFont, border, writer, document, padding, true, true);
        Font font = FontFactory.getFont("Helvetica", 10);
        Paragraph p;
        p = new Paragraph("\nVarious border widths and colors\nuseAscender=true, useDescender=true", font);
        document.add(p);

        document.newPage();

        // page 2
        padding = 2f;
        border = new Rectangle(0f, 0f);
        border.setBorderWidthLeft(1f);
        border.setBorderWidthBottom(2f);
        border.setBorderWidthRight(1f);
        border.setBorderWidthTop(2f);
        border.setBorderColor(Color.BLACK);
        makeTestPage(tableFont, border, writer, document, padding, true, true);
        p = new Paragraph(
                "More typical use - padding of 2\nuseBorderPadding=true, useAscender=true, useDescender=true",
                font);
        document.add(p);

        document.newPage();

        // page 3
        padding = 0f;
        border = new Rectangle(0f, 0f);
        border.setBorderWidthLeft(1f);
        border.setBorderWidthBottom(2f);
        border.setBorderWidthRight(1f);
        border.setBorderWidthTop(2f);
        border.setBorderColor(Color.BLACK);
        makeTestPage(tableFont, border, writer, document, padding, false, true);
        p = new Paragraph("\nuseBorderPadding=true, useAscender=false, useDescender=true", font);
        document.add(p);

        document.newPage();

        // page 4
        padding = 0f;
        border = new Rectangle(0f, 0f);
        border.setBorderWidthLeft(1f);
        border.setBorderWidthBottom(2f);
        border.setBorderWidthRight(1f);
        border.setBorderWidthTop(2f);
        border.setBorderColor(Color.BLACK);
        makeTestPage(tableFont, border, writer, document, padding, false, false);
        p = new Paragraph("\nuseBorderPadding=true, useAscender=false, useDescender=false", font);
        document.add(p);

        document.newPage();

        // page 5
        padding = 0f;
        border = new Rectangle(0f, 0f);
        border.setBorderWidthLeft(1f);
        border.setBorderWidthBottom(2f);
        border.setBorderWidthRight(1f);
        border.setBorderWidthTop(2f);
        border.setBorderColor(Color.BLACK);
        makeTestPage(tableFont, border, writer, document, padding, true, false);
        p = new Paragraph("\nuseBorderPadding=true, useAscender=true, useDescender=false", font);
        document.add(p);
    } catch (Exception de) {
        de.printStackTrace();
    }
    // step5
    document.close();
}

From source file:com.hotaviano.tableexporter.pdf.PDFExporter.java

License:Open Source License

private List<PdfPCell> getHeaders(Document document) {
    List<PdfPCell> result = new ArrayList<>();

    Element tr = document.getRootElement().getChild("thead").getChildren().get(0);

    for (Element th : tr.getChildren()) {
        PdfPCell cell = new PdfPCell(new Phrase(th.getText(), new Font(Font.BOLD)));
        result.add(cell);//  ww  w. ja  v  a2s.c  om
    }

    return result;
}