Example usage for com.itextpdf.text.pdf PdfPCell setColspan

List of usage examples for com.itextpdf.text.pdf PdfPCell setColspan

Introduction

In this page you can find the example usage for com.itextpdf.text.pdf PdfPCell setColspan.

Prototype

public void setColspan(int colspan) 

Source Link

Document

Setter for property colspan.

Usage

From source file:com.dandymadeproductions.ajqvue.io.PDFDataTableDumpThread.java

License:Open Source License

public void run() {
    // Class Method Instances
    String title;//from   www.  j a v a  2  s  .co m

    Font titleFont;
    Font rowHeaderFont;
    Font tableDataFont;
    BaseFont rowHeaderBaseFont;

    PdfPTable pdfTable;
    PdfPCell titleCell;
    PdfPCell rowHeaderCell;
    PdfPCell bodyCell;

    Document pdfDocument;
    PdfWriter pdfWriter;
    ByteArrayOutputStream byteArrayOutputStream;

    int columnCount, rowNumber;
    int[] columnWidths;
    int totalWidth;
    Rectangle pageSize;

    ProgressBar dumpProgressBar;
    HashMap<String, String> summaryListTableNameTypes;
    DataExportProperties pdfDataExportOptions;

    String currentTableFieldName;
    String currentType, currentString;

    // Setup
    columnCount = summaryListTable.getColumnCount();
    rowNumber = summaryListTable.getRowCount();
    columnWidths = new int[columnCount];

    pdfTable = new PdfPTable(columnCount);
    pdfTable.setWidthPercentage(100);
    pdfTable.getDefaultCell().setPaddingBottom(4);
    pdfTable.getDefaultCell().setBorderWidth(1);

    summaryListTableNameTypes = new HashMap<String, String>();
    pdfDataExportOptions = DBTablesPanel.getDataExportProperties();

    titleFont = new Font(pdfDataExportOptions.getFont());
    titleFont.setStyle(Font.BOLD);
    titleFont.setSize((float) pdfDataExportOptions.getTitleFontSize());
    titleFont.setColor(new BaseColor(pdfDataExportOptions.getTitleColor().getRGB()));

    rowHeaderFont = new Font(pdfDataExportOptions.getFont());
    rowHeaderFont.setStyle(Font.BOLD);
    rowHeaderFont.setSize((float) pdfDataExportOptions.getHeaderFontSize());
    rowHeaderFont.setColor(new BaseColor(pdfDataExportOptions.getHeaderColor().getRGB()));
    rowHeaderBaseFont = rowHeaderFont.getCalculatedBaseFont(false);

    tableDataFont = pdfDataExportOptions.getFont();

    // Constructing progress bar.
    dumpProgressBar = new ProgressBar(exportedTable + " Dump");
    dumpProgressBar.setTaskLength(rowNumber);
    dumpProgressBar.pack();
    dumpProgressBar.center();
    dumpProgressBar.setVisible(true);

    // Create a Title if Optioned.
    title = pdfDataExportOptions.getTitle();

    if (!title.equals("")) {
        if (title.equals("EXPORTED TABLE"))
            title = exportedTable;

        titleCell = new PdfPCell(new Phrase(title, titleFont));
        titleCell.setBorder(0);
        titleCell.setPadding(10);
        titleCell.setColspan(summaryListTable.getColumnCount());
        titleCell.setHorizontalAlignment(PdfPCell.ALIGN_CENTER);

        pdfTable.addCell(titleCell);
        pdfTable.setHeaderRows(2);
    } else
        pdfTable.setHeaderRows(1);

    // Create Row Header.
    for (int i = 0; i < columnCount; i++) {
        currentTableFieldName = summaryListTable.getColumnName(i);
        rowHeaderCell = new PdfPCell(new Phrase(currentTableFieldName, rowHeaderFont));
        rowHeaderCell.setBorderWidth(pdfDataExportOptions.getHeaderBorderSize());
        rowHeaderCell.setHorizontalAlignment(PdfPCell.ALIGN_CENTER);
        rowHeaderCell.setBorderColor(new BaseColor(pdfDataExportOptions.getHeaderBorderColor().getRGB()));
        pdfTable.addCell(rowHeaderCell);
        columnWidths[i] = Math.min(50000,
                Math.max(columnWidths[i], rowHeaderBaseFont.getWidth(currentTableFieldName + " ")));
        if (tableColumnTypeNameHashMap != null)
            summaryListTableNameTypes.put(Integer.toString(i),
                    tableColumnTypeNameHashMap.get(currentTableFieldName));
        else
            summaryListTableNameTypes.put(Integer.toString(i), "String");
    }

    // Create the Body of Data.
    int i = 0;
    while ((i < rowNumber) && !dumpProgressBar.isCanceled()) {
        dumpProgressBar.setCurrentValue(i);

        // Collecting rows of data & formatting date & timestamps
        // as needed according to the Export Properties.

        if (summaryListTable.getValueAt(i, 0) != null) {
            for (int j = 0; j < summaryListTable.getColumnCount(); j++) {
                currentString = summaryListTable.getValueAt(i, j) + "";
                currentString = currentString.replaceAll("\n", "");
                currentString = currentString.replaceAll("\r", "");
                currentType = summaryListTableNameTypes.get(Integer.toString(j));

                // Format Date & Timestamp Fields as Needed.

                if ((currentType != null) && (currentType.equals("DATE") || currentType.equals("DATETIME")
                        || currentType.indexOf("TIMESTAMP") != -1)) {
                    if (!currentString.toLowerCase(Locale.ENGLISH).equals("null")) {
                        int firstSpace;
                        String time;

                        // Dates fall through DateTime and Timestamps try
                        // to get the time separated before formatting
                        // the date.

                        if (currentString.indexOf(" ") != -1) {
                            firstSpace = currentString.indexOf(" ");
                            time = currentString.substring(firstSpace);
                            currentString = currentString.substring(0, firstSpace);
                        } else
                            time = "";

                        currentString = Utils.convertViewDateString_To_DBDateString(currentString,
                                DBTablesPanel.getGeneralDBProperties().getViewDateFormat());
                        currentString = Utils.convertDBDateString_To_ViewDateString(currentString,
                                pdfDataExportOptions.getPDFDateFormat()) + time;
                    }
                }
                bodyCell = new PdfPCell(new Phrase(currentString, tableDataFont));
                bodyCell.setPaddingBottom(4);

                if (currentType != null) {
                    // Set Numeric Fields Alignment.
                    if (currentType.indexOf("BIT") != -1 || currentType.indexOf("BOOL") != -1
                            || currentType.indexOf("NUM") != -1 || currentType.indexOf("INT") != -1
                            || currentType.indexOf("FLOAT") != -1 || currentType.indexOf("DOUBLE") != -1
                            || currentType.equals("REAL") || currentType.equals("DECIMAL")
                            || currentType.indexOf("COUNTER") != -1 || currentType.equals("BYTE")
                            || currentType.equals("CURRENCY")) {
                        bodyCell.setHorizontalAlignment(pdfDataExportOptions.getNumberAlignment());
                        bodyCell.setPaddingRight(4);
                    }
                    // Set Date/Time Field Alignment.
                    if (currentType.indexOf("DATE") != -1 || currentType.indexOf("TIME") != -1
                            || currentType.indexOf("YEAR") != -1)
                        bodyCell.setHorizontalAlignment(pdfDataExportOptions.getDateAlignment());
                }

                pdfTable.addCell(bodyCell);
                columnWidths[j] = Math.min(50000,
                        Math.max(columnWidths[j], BASE_FONT.getWidth(currentString + " ")));
            }
        }
        i++;
    }
    dumpProgressBar.dispose();

    // Check to see if any data was in the summary
    // table to even be saved.

    if (pdfTable.size() <= pdfTable.getHeaderRows())
        return;

    // Create a document of the PDF formatted data
    // to be saved to the given output file.

    try {
        // Sizing & Layout
        totalWidth = 0;
        for (int width : columnWidths)
            totalWidth += width;

        if (pdfDataExportOptions.getPageLayout() == PDFExportPreferencesPanel.LAYOUT_PORTRAIT)
            pageSize = PageSize.A4;
        else {
            pageSize = PageSize.A4.rotate();
            pageSize.setRight(pageSize.getRight() * Math.max(1f, totalWidth / 53000f));
            pageSize.setTop(pageSize.getTop() * Math.max(1f, totalWidth / 53000f));
        }

        pdfTable.setWidths(columnWidths);

        // Document
        pdfDocument = new Document(pageSize);
        byteArrayOutputStream = new ByteArrayOutputStream();
        pdfWriter = PdfWriter.getInstance(pdfDocument, byteArrayOutputStream);
        pdfDocument.open();
        pdfTemplate = pdfWriter.getDirectContent().createTemplate(100, 100);
        pdfTemplate.setBoundingBox(new com.itextpdf.text.Rectangle(-20, -20, 100, 100));
        pdfWriter.setPageEvent(this);
        pdfDocument.add(pdfTable);
        pdfDocument.close();

        // Outputting
        WriteDataFile.mainWriteDataString(fileName, byteArrayOutputStream.toByteArray(), false);

    } catch (DocumentException de) {
        if (Ajqvue.getDebug()) {
            System.out.println("Failed to Create Document Needed to Output Data. \n" + de.toString());
        }
    }
}

From source file:com.dandymadeproductions.myjsqlview.io.PDFDataTableDumpThread.java

License:Open Source License

public void run() {
    // Class Method Instances
    String title;/*from  ww w . jav a 2s . com*/
    PdfPTable pdfTable;
    PdfPCell titleCell, rowHeaderCell, bodyCell;
    Document pdfDocument;
    PdfWriter pdfWriter;
    ByteArrayOutputStream byteArrayOutputStream;

    int columnCount, rowNumber;
    int[] columnWidths;
    int totalWidth;
    Rectangle pageSize;

    MyJSQLView_ProgressBar dumpProgressBar;
    HashMap<String, String> summaryListTableNameTypes;
    String currentTableFieldName;
    String currentType, currentString;

    // Setup
    columnCount = summaryListTable.getColumnCount();
    rowNumber = summaryListTable.getRowCount();
    columnWidths = new int[columnCount];

    pdfTable = new PdfPTable(columnCount);
    pdfTable.setWidthPercentage(100);
    pdfTable.getDefaultCell().setPaddingBottom(4);
    pdfTable.getDefaultCell().setBorderWidth(1);

    summaryListTableNameTypes = new HashMap<String, String>();
    pdfDataExportOptions = DBTablesPanel.getDataExportProperties();

    titleFont = new Font(pdfDataExportOptions.getFont());
    titleFont.setStyle(Font.BOLD);
    titleFont.setSize((float) pdfDataExportOptions.getTitleFontSize());
    titleFont.setColor(new BaseColor(pdfDataExportOptions.getTitleColor().getRGB()));

    rowHeaderFont = new Font(pdfDataExportOptions.getFont());
    rowHeaderFont.setStyle(Font.BOLD);
    rowHeaderFont.setSize((float) pdfDataExportOptions.getHeaderFontSize());
    rowHeaderFont.setColor(new BaseColor(pdfDataExportOptions.getHeaderColor().getRGB()));
    rowHeaderBaseFont = rowHeaderFont.getCalculatedBaseFont(false);

    tableDataFont = pdfDataExportOptions.getFont();

    // Constructing progress bar.
    rowNumber = summaryListTable.getRowCount();
    dumpProgressBar = new MyJSQLView_ProgressBar(exportedTable + " Dump");
    dumpProgressBar.setTaskLength(rowNumber);
    dumpProgressBar.pack();
    dumpProgressBar.center();
    dumpProgressBar.setVisible(true);

    // Create a Title if Optioned.
    title = pdfDataExportOptions.getTitle();

    if (!title.equals("")) {
        if (title.equals("EXPORTED TABLE"))
            title = exportedTable;

        titleCell = new PdfPCell(new Phrase(title, titleFont));
        titleCell.setBorder(0);
        titleCell.setPadding(10);
        titleCell.setColspan(summaryListTable.getColumnCount());
        titleCell.setHorizontalAlignment(PdfPCell.ALIGN_CENTER);

        pdfTable.addCell(titleCell);
        pdfTable.setHeaderRows(2);
    } else
        pdfTable.setHeaderRows(1);

    // Create Row Header.
    for (int i = 0; i < columnCount; i++) {
        currentTableFieldName = summaryListTable.getColumnName(i);
        rowHeaderCell = new PdfPCell(new Phrase(currentTableFieldName, rowHeaderFont));
        rowHeaderCell.setBorderWidth(pdfDataExportOptions.getHeaderBorderSize());
        rowHeaderCell.setHorizontalAlignment(PdfPCell.ALIGN_CENTER);
        rowHeaderCell.setBorderColor(new BaseColor(pdfDataExportOptions.getHeaderBorderColor().getRGB()));
        pdfTable.addCell(rowHeaderCell);
        columnWidths[i] = Math.min(50000,
                Math.max(columnWidths[i], rowHeaderBaseFont.getWidth(currentTableFieldName + " ")));
        if (tableColumnTypeHashMap != null)
            summaryListTableNameTypes.put(Integer.toString(i),
                    tableColumnTypeHashMap.get(currentTableFieldName));
        else
            summaryListTableNameTypes.put(Integer.toString(i), "String");
    }

    // Create the Body of Data.
    int i = 0;
    while ((i < rowNumber) && !dumpProgressBar.isCanceled()) {
        dumpProgressBar.setCurrentValue(i);

        // Collecting rows of data & formatting date & timestamps
        // as needed according to the Export Properties.

        if (summaryListTable.getValueAt(i, 0) != null) {
            for (int j = 0; j < summaryListTable.getColumnCount(); j++) {
                currentString = summaryListTable.getValueAt(i, j) + "";
                currentString = currentString.replaceAll("\n", "");
                currentString = currentString.replaceAll("\r", "");
                currentType = summaryListTableNameTypes.get(Integer.toString(j));

                // Format Date & Timestamp Fields as Needed.

                if ((currentType != null) && (currentType.equals("DATE") || currentType.equals("DATETIME")
                        || currentType.indexOf("TIMESTAMP") != -1)) {
                    if (!currentString.toLowerCase().equals("null")) {
                        int firstSpace;
                        String time;

                        // Dates fall through DateTime and Timestamps try
                        // to get the time separated before formatting
                        // the date.

                        if (currentString.indexOf(" ") != -1) {
                            firstSpace = currentString.indexOf(" ");
                            time = currentString.substring(firstSpace);
                            currentString = currentString.substring(0, firstSpace);
                        } else
                            time = "";

                        currentString = MyJSQLView_Utils.convertViewDateString_To_DBDateString(currentString,
                                DBTablesPanel.getGeneralDBProperties().getViewDateFormat());
                        currentString = MyJSQLView_Utils.convertDBDateString_To_ViewDateString(currentString,
                                pdfDataExportOptions.getPDFDateFormat()) + time;
                    }
                }
                bodyCell = new PdfPCell(new Phrase(currentString, tableDataFont));
                bodyCell.setPaddingBottom(4);

                if (currentType != null) {
                    // Set Numeric Fields Alignment.
                    if (currentType.indexOf("BIT") != -1 || currentType.indexOf("BOOL") != -1
                            || currentType.indexOf("NUM") != -1 || currentType.indexOf("INT") != -1
                            || currentType.indexOf("FLOAT") != -1 || currentType.indexOf("DOUBLE") != -1
                            || currentType.equals("REAL") || currentType.equals("DECIMAL")
                            || currentType.indexOf("COUNTER") != -1 || currentType.equals("BYTE")
                            || currentType.equals("CURRENCY")) {
                        bodyCell.setHorizontalAlignment(pdfDataExportOptions.getNumberAlignment());
                        bodyCell.setPaddingRight(4);
                    }
                    // Set Date/Time Field Alignment.
                    if (currentType.indexOf("DATE") != -1 || currentType.indexOf("TIME") != -1
                            || currentType.indexOf("YEAR") != -1)
                        bodyCell.setHorizontalAlignment(pdfDataExportOptions.getDateAlignment());
                }

                pdfTable.addCell(bodyCell);
                columnWidths[j] = Math.min(50000,
                        Math.max(columnWidths[j], BASE_FONT.getWidth(currentString + " ")));
            }
        }
        i++;
    }
    dumpProgressBar.dispose();

    // Check to see if any data was in the summary
    // table to even be saved.

    if (pdfTable.size() <= pdfTable.getHeaderRows())
        return;

    // Create a document of the PDF formatted data
    // to be saved to the given output file.

    try {
        // Sizing & Layout
        totalWidth = 0;
        for (int width : columnWidths)
            totalWidth += width;

        if (pdfDataExportOptions.getPageLayout() == PDFExportPreferencesPanel.LAYOUT_PORTRAIT)
            pageSize = PageSize.A4;
        else {
            pageSize = PageSize.A4.rotate();
            pageSize.setRight(pageSize.getRight() * Math.max(1f, totalWidth / 53000f));
            pageSize.setTop(pageSize.getTop() * Math.max(1f, totalWidth / 53000f));
        }

        pdfTable.setWidths(columnWidths);

        // Document
        pdfDocument = new Document(pageSize);
        byteArrayOutputStream = new ByteArrayOutputStream();
        pdfWriter = PdfWriter.getInstance(pdfDocument, byteArrayOutputStream);
        pdfDocument.open();
        pdfTemplate = pdfWriter.getDirectContent().createTemplate(100, 100);
        pdfTemplate.setBoundingBox(new com.itextpdf.text.Rectangle(-20, -20, 100, 100));
        pdfWriter.setPageEvent(this);
        pdfDocument.add(pdfTable);
        pdfDocument.close();

        // Outputting
        WriteDataFile.mainWriteDataString(fileName, byteArrayOutputStream.toByteArray(), false);

    } catch (DocumentException de) {
        if (MyJSQLView.getDebug()) {
            System.out.println("Failed to Create Document Needed to Output Data. \n" + de.toString());
        }
    }
}

From source file:com.deadormi.servlet.CreaPdfServlet.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods./*  w  w  w .j a  va  2s  .c o m*/
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    String url = request.getQueryString();
    Integer gruppo_id = Integer.parseInt(url.substring(url.indexOf("=") + 1, url.length()));

    List<Utente> iscritti = null;
    List<Post> posts = null;
    Gruppo gruppo = null;
    Utente utente = null;
    String imageUrl = null;
    String baseUrl = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort();

    try {
        iscritti = UtenteController.getUserByGroupId(request, gruppo_id);
        gruppo = GruppoController.getGruppoById(request, gruppo_id);
    } catch (SQLException ex) {
        log.error(ex);
    }

    // step 1: creation of a document-object
    Document document = new Document();
    try {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        PdfWriter.getInstance(document, baos);
        document.open();

        String incipit = "Report del " + CurrentDate.getCurrentDate() + "\n";
        Paragraph pIncipit = new Paragraph(incipit,
                FontFactory.getFont(FontFactory.HELVETICA, 14, BaseColor.BLACK));
        pIncipit.setAlignment(Element.ALIGN_CENTER);
        pIncipit.setSpacingAfter(10);
        document.add(pIncipit);

        String title = "Gruppo " + gruppo.getNome();
        Paragraph pTitle = new Paragraph(title, FontFactory.getFont(FontFactory.HELVETICA, 18, BaseColor.BLUE));
        pTitle.setAlignment(Element.ALIGN_CENTER);
        pTitle.setSpacingAfter(40);
        document.add(pTitle);

        PdfPCell labelNome = new PdfPCell(new Paragraph("Nome utente"));
        PdfPCell labelNumPost = new PdfPCell(new Paragraph("Num. post"));
        PdfPCell labelData = new PdfPCell(new Paragraph("Data ultimo post"));
        labelNome.setBorder(Rectangle.NO_BORDER);
        labelNumPost.setBorder(Rectangle.NO_BORDER);
        labelData.setBorder(Rectangle.NO_BORDER);

        for (int i = 0; i < iscritti.size(); i++) {
            utente = iscritti.get(i);
            try {
                posts = PostController.getPostByGruppoIdAndUserId(request, gruppo_id, utente.getId_utente());
            } catch (SQLException ex) {
                Logger.getLogger(CreaPdfServlet.class.getName()).log(Level.SEVERE, null, ex);
            }

            if (utente.getNome_avatar() != null) {
                imageUrl = baseUrl + request.getContextPath() + AVATAR_RESOURCE_PATH + "/"
                        + utente.getId_utente() + "_" + utente.getNome_avatar();
                ;
            } else {
                imageUrl = baseUrl + request.getContextPath() + "/res/images/user_avatar.png";
            }
            Image image = Image.getInstance(new URL(imageUrl));
            image.scaleToFit(50, 50);

            PdfPTable table = new PdfPTable(3);

            PdfPCell cellAvatar = new PdfPCell(image);
            cellAvatar.setHorizontalAlignment(Element.ALIGN_CENTER);
            cellAvatar.setBorder(Rectangle.NO_BORDER);
            cellAvatar.setRowspan(3);

            PdfPCell cellNome = new PdfPCell(new Paragraph(utente.getUsername() + ""));
            cellNome.setBorder(Rectangle.NO_BORDER);

            PdfPCell cellNumPost = new PdfPCell(new Paragraph(posts.size() + ""));
            cellNumPost.setBorder(Rectangle.NO_BORDER);

            //L'ultimo  sempre il piu recente siccome la query  ORDER BY data_creazione
            PdfPCell cellData;
            if (posts.size() != 0) {
                cellData = new PdfPCell(new Paragraph(posts.get(posts.size() - 1).getData_creazione()));
            } else {
                cellData = new PdfPCell(new Paragraph("N/A"));

            }
            cellData.setBorder(Rectangle.NO_BORDER);

            PdfPCell cellVoidBottom = new PdfPCell(new Paragraph(" "));
            cellVoidBottom.setBorder(Rectangle.BOTTOM);
            cellVoidBottom.setPaddingBottom(10);
            cellVoidBottom.setColspan(3);

            PdfPCell cellVoidTop = new PdfPCell(new Paragraph(" "));
            cellVoidTop.setBorder(Rectangle.NO_BORDER);
            cellVoidTop.setPaddingTop(10);
            cellVoidTop.setColspan(3);

            table.addCell(cellVoidTop);
            table.addCell(cellAvatar);
            table.addCell(labelNome);
            table.addCell(cellNome);
            table.addCell(labelNumPost);
            table.addCell(cellNumPost);
            table.addCell(labelData);
            table.addCell(cellData);
            table.addCell(cellVoidBottom);

            document.add(table);

        }

        document.close();
        response.setContentType("application/pdf");
        response.addHeader("Content-Disposition", "inline; filename=ahahah.pdf");
        OutputStream os = response.getOutputStream();
        baos.writeTo(os);
        os.flush();
        os.close();
    } catch (DocumentException ex) {
        Logger.getLogger(CreaPdfServlet.class.getName()).log(Level.SEVERE, null, ex);
    }
}

From source file:com.docdoku.server.extras.TitleBlockGenerator.java

License:Open Source License

private void generateLyfeCycleState(Paragraph preface, ResourceBundle bundle) {
    // Table title
    preface.add(new Paragraph(bundle.getString("lifecycle") + " : " + lifeCycleState, BOLD_12));
    addEmptyLine(preface, 1);/*from   w  ww  . j  av  a  2 s .  co m*/

    PdfPTable lifeCycleTable = new PdfPTable(5);
    lifeCycleTable.setWidthPercentage(100f);
    PdfPCell cell;
    for (Activity activity : workflow.getActivities()) {

        boolean headerRendered = false;

        for (Task task : activity.getTasks()) {

            if (task.isApproved() || task.isRejected()) {

                if (!headerRendered) {
                    // Table head
                    cell = new PdfPCell(new Phrase(activity.getLifeCycleState(), BOLD_12));
                    cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
                    cell.setColspan(5);
                    lifeCycleTable.addCell(cell);

                    cell = new PdfPCell(new Phrase(bundle.getString("lifecycle.task"), BOLD_12));
                    cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
                    lifeCycleTable.addCell(cell);

                    cell = new PdfPCell(new Phrase(bundle.getString("lifecycle.date"), BOLD_12));
                    cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
                    lifeCycleTable.addCell(cell);

                    cell = new PdfPCell(new Phrase(bundle.getString("lifecycle.author"), BOLD_12));
                    cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
                    lifeCycleTable.addCell(cell);

                    cell = new PdfPCell(new Phrase(bundle.getString("lifecycle.comments"), BOLD_12));
                    cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
                    lifeCycleTable.addCell(cell);

                    cell = new PdfPCell(new Phrase(bundle.getString("lifecycle.signature"), BOLD_12));
                    cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
                    lifeCycleTable.addCell(cell);

                    headerRendered = true;
                }

                // Table body
                cell = new PdfPCell(new Phrase(task.getTitle(), NORMAL_12));
                lifeCycleTable.addCell(cell);

                SimpleDateFormat simpleFormat = new SimpleDateFormat(bundle.getString("date.format"));
                cell = new PdfPCell(new Phrase(simpleFormat.format(task.getClosureDate()), NORMAL_12));
                lifeCycleTable.addCell(cell);

                cell = new PdfPCell(new Phrase(task.getWorker().getName(), NORMAL_12));
                lifeCycleTable.addCell(cell);

                cell = new PdfPCell(new Phrase(task.getClosureComment(), NORMAL_12));
                lifeCycleTable.addCell(cell);

                if (task.getSignature() != null) {
                    try {
                        byte[] imageByte;
                        int indexOfFirstComma = task.getSignature().indexOf(",");
                        String base64 = task.getSignature().substring(indexOfFirstComma + 1,
                                task.getSignature().length());
                        imageByte = DatatypeConverter.parseBase64Binary(base64);
                        Image image = Image.getInstance(imageByte);
                        image.setCompressionLevel(Image.ORIGINAL_NONE);
                        image.scaleToFit(SIGNATURE_SIZE_W, SIGNATURE_SIZE_H);
                        cell = new PdfPCell(image);
                        lifeCycleTable.addCell(cell);
                    } catch (Exception e) {
                        cell = new PdfPCell(new Phrase(bundle.getString("signature.error"), NORMAL_12));
                        lifeCycleTable.addCell(cell);
                    }

                } else {
                    cell = new PdfPCell(new Phrase(""));
                    lifeCycleTable.addCell(cell);
                }

            }
        }

    }

    preface.add(lifeCycleTable);
}

From source file:com.ftt.gui.FrameFormation.java

private void pdf1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pdf1ActionPerformed

    if (nomf.getText() == null || descriptionf.getText() == null || "".equals(lieux.getText())
            || dateclot.getDate() == null || dateov.getDate() == null) {
        JOptionPane.showMessageDialog(this, "Vrifier les champs !");
    } else {//from   w  w  w.  ja  va  2  s .c  o m
        SimpleDateFormat formateur = new SimpleDateFormat("dd-MM-yyyy");
        String val1 = lieux.getText();
        String val2 = formateur.format(dateov.getDate());
        String val3 = formateur.format(dateclot.getDate());
        String val4 = combocible.getSelectedItem().toString();
        String val5 = nomf.getText();
        String val6 = descriptionf.getText();
        Document document = new Document();

        try {
            PdfWriter.getInstance(document, new FileOutputStream("rapport.pdf"));

            document.open();

            com.itextpdf.text.Image image = com.itextpdf.text.Image.getInstance("ftt.png");
            document.add(image);
            document.add(new Paragraph("Liste des formations",
                    FontFactory.getFont(FontFactory.TIMES_ROMAN, 18, Font.BOLD)));
            document.add(new Paragraph(formateur.format(new Date())));
            String val322 = formateur.format(new Date());
            document.add(new Paragraph("                    "));

            PdfPTable table = new PdfPTable(2);
            PdfPCell cell = new PdfPCell(new Paragraph("formations"));
            cell.setColspan(4);
            cell.setHorizontalAlignment(com.itextpdf.text.Element.ALIGN_CENTER);
            cell.setBackgroundColor(BaseColor.BLUE);
            table.addCell(cell);
            table.addCell("Nom formation");
            table.addCell(val5);
            table.addCell(cell);
            table.addCell("Description");
            table.addCell(val6);
            table.addCell(cell);
            table.addCell("Lieux");
            table.addCell(val1);
            table.addCell("Date d'ouverture");
            table.addCell(val2);
            table.addCell("Date de cloture");
            table.addCell(val3);
            table.addCell("Cible");
            table.addCell(val4);
            document.add(table);
            document.add(new Paragraph("    "));
            document.add(new Paragraph("    "));
            document.add(new Paragraph("Responsable des formations"));
            document.add(new Paragraph("Federation Tunisenne de Tennis"));
            document.close();
            JOptionPane.showMessageDialog(null, "Rapport Enregistrer");
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
        }
    }
}

From source file:com.ftt.gui.FrameFormation.java

private void pdf2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pdf2ActionPerformed

    FormationDAO fd = new FormationDAO();
    ArrayList<Formation> formations = (ArrayList<Formation>) fd.select();
    SimpleDateFormat formateur = new SimpleDateFormat("dd-MM-yyyy");

    Document document = new Document();

    try {/*from w ww  .  j  a  v  a2s. c om*/
        PdfWriter.getInstance(document, new FileOutputStream("rapport_formations.pdf"));

        document.open();

        com.itextpdf.text.Image image = com.itextpdf.text.Image.getInstance("ftt.png");
        document.add(image);
        document.add(new Paragraph("Liste des formations",
                FontFactory.getFont(FontFactory.TIMES_ROMAN, 18, Font.BOLD)));
        document.add(new Paragraph("   "));
        document.add(new Paragraph("    "));
        for (int i = 0; i < formations.size(); i++) {
            document.add(new Paragraph("    "));
            int val = formations.get(i).getId();
            String val1 = formations.get(i).getLieux();
            String val2 = formations.get(i).getDateOuverture();
            String val3 = formations.get(i).getDateCloture();
            String val4 = formations.get(i).getCible();
            String val5 = formations.get(i).getNom();
            String val6 = formations.get(i).getDescription();

            PdfPTable table = new PdfPTable(2);
            PdfPCell cell = new PdfPCell(new Paragraph("formation " + val));
            cell.setColspan(4);
            cell.setHorizontalAlignment(com.itextpdf.text.Element.ALIGN_CENTER);
            cell.setBackgroundColor(BaseColor.GRAY);
            table.addCell(cell);
            table.addCell("Nom formation");
            table.addCell(val5);
            table.addCell("Description");
            table.addCell(val6);
            table.addCell("Lieux");
            table.addCell(val1);
            table.addCell("Date d'ouverture");
            table.addCell(val2);
            table.addCell("Date de cloture");
            table.addCell(val3);
            table.addCell("Cible");
            table.addCell(val4);
            document.add(table);
        }

        document.add(new Paragraph("    "));
        document.add(new Paragraph("    "));
        document.add(new Paragraph("Responsable des formations"));
        document.add(new Paragraph("Federation Tunisenne de Tennis"));
        document.close();
        JOptionPane.showMessageDialog(null, "Rapport Enregistrer");
    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }
}

From source file:com.ftt.gui.FrameJoueur.java

private void pdf2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pdf2ActionPerformed

    JoueurDAO fd = new JoueurDAO();
    ArrayList<Joueur> joueurs = (ArrayList<Joueur>) fd.select_trie_par_club();
    SimpleDateFormat formateur = new SimpleDateFormat("dd-MM-yyyy");

    Document document = new Document();

    try {/*from w w w  .jav  a 2 s.  co m*/
        PdfWriter.getInstance(document, new FileOutputStream("rapport_joueurs.pdf"));

        document.open();

        com.itextpdf.text.Image image = com.itextpdf.text.Image.getInstance("ftt.png");
        document.add(image);
        document.add(new Paragraph("Liste des joueurs",
                FontFactory.getFont(FontFactory.TIMES_ROMAN, 18, Font.BOLD)));
        document.add(new Paragraph("   "));

        for (int i = 0; i < joueurs.size(); i++) {
            document.add(new Paragraph("    "));
            document.add(new Paragraph(joueurs.get(i).getNom_club()));
            document.add(new Paragraph("   "));
            Integer val = joueurs.get(i).getId();
            String val1 = joueurs.get(i).getNomJoueur();
            String val2 = joueurs.get(i).getPrenomJoueur();
            String val3 = joueurs.get(i).getDateNaissance();
            String val4 = joueurs.get(i).getCarriere();
            String val5 = joueurs.get(i).getSexe();
            Integer val6 = joueurs.get(i).getPoints();
            PdfPTable table = new PdfPTable(2);
            PdfPCell cell = new PdfPCell(new Paragraph("Joueur id: " + val));
            cell.setColspan(4);
            cell.setHorizontalAlignment(com.itextpdf.text.Element.ALIGN_LEFT);
            cell.setBackgroundColor(BaseColor.GRAY);
            table.addCell(cell);
            table.addCell("Nom");
            table.addCell(val1);
            table.addCell("Prenom");
            table.addCell(val2);
            table.addCell("Date de naissance");
            table.addCell(val3);
            table.addCell("Carriere");
            table.addCell(val4);
            table.addCell("sexe");
            table.addCell(val5);
            table.addCell("points");
            table.addCell(val6.toString());
            document.add(table);
        }

        document.add(new Paragraph("    "));
        document.add(new Paragraph("    "));

        document.add(new Paragraph("Federation Tunisenne de Tennis"));
        document.close();
        JOptionPane.showMessageDialog(null, "Rapport Enregistrer");
    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }
}

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

public PdfPTable bodySection() throws Exception {
    String exportRefRemarks = "";
    String routingInsRemarks = "";
    String InsStatement = "";
    StringBuilder pierValues = new StringBuilder();
    String[] remarkTypes = { REMARKS_TYPE_ROUTING_INSTRU, REMARKS_TYPE_EXPORT_REF };
    List remarks = new LclRemarksDAO().getRemarksByTypes(lclbl.getFileNumberId(), remarkTypes);
    for (Object row : remarks) {
        Object[] col = (Object[]) row;
        if (col[1].toString().equalsIgnoreCase("Export Reference")) {
            exportRefRemarks = col[0].toString();
        }// w  ww  .  java2 s.  com
        if (col[1].toString().equalsIgnoreCase("Routing Instruction")) {
            routingInsRemarks = col[0].toString();
        }
    }
    String bill_type = lclbl.getBillingType();

    billingType = bill_type.equalsIgnoreCase("P") ? "** FREIGHT PREPAID **"
            : bill_type.equalsIgnoreCase("C") ? "** FREIGHT COLLECT **"
                    : bill_type.equalsIgnoreCase("B") && "Y".equalsIgnoreCase(printPpdBlBothKey)
                            ? "** FREIGHT PREPAID **"
                            : "** FREIGHT COLLECT **";
    billType = bill_type.equalsIgnoreCase("P") ? "PPD" : bill_type.equalsIgnoreCase("C") ? "COL" : "BOTH";
    LclSsDetail bookedOrPickedVoy = null;
    ExportVoyageSearchModel pickedDetails = new LclUnitSsDAO()
            .getPickedVoyageByVessel(lclBooking.getFileNumberId(), "E");
    if (pickedDetails != null && CommonUtils.isNotEmpty(pickedDetails.getUnitSsId())) {
        LclUnitSs lclUnitSs = new LclUnitSsDAO().findById(Long.parseLong(pickedDetails.getUnitSsId()));
        bookedOrPickedVoy = lclUnitSs.getLclSsHeader().getVesselSsDetail();
        unitNumber = lclUnitSs.getLclUnit().getUnitNo();
        voyageNumber = lclUnitSs.getLclSsHeader().getScheduleNo();
        sealOut = CommonUtils.isNotEmpty(lclUnitSs.getSUHeadingNote())
                ? lclUnitSs.getSUHeadingNote().toUpperCase()
                : "";
    } else {
        bookedOrPickedVoy = null != lclbl.getBookedSsHeaderId()
                ? lclbl.getBookedSsHeaderId().getVesselSsDetail()
                : null;
    }
    StringBuilder carrierName = new StringBuilder();
    if (bookedOrPickedVoy != null) {
        sailDate = DateUtils.formatStringDateToAppFormatMMM(bookedOrPickedVoy.getStd());
        sailDateFormat = DateUtils.formatDateToMMMMDDYYYY(bookedOrPickedVoy.getStd());
        ladenSailDateRemarks = "\nLaden On Board:" + sailDate;
        if (CommonFunctions.isNotNull(bookedOrPickedVoy.getSpReferenceName())) {
            carrierName.append(bookedOrPickedVoy.getSpReferenceName()).append("  ");
        }
        if (CommonUtils.isNotEmpty(bookedOrPickedVoy.getTransMode())) {
            carrierName.append(bookedOrPickedVoy.getTransMode()).append(". ");
        }
        if (CommonUtils.isNotEmpty(bookedOrPickedVoy.getSpReferenceNo())) {
            carrierName.append(bookedOrPickedVoy.getSpReferenceNo());
        }
        pierValues.append(bookedOrPickedVoy.getDeparture().getUnLocationName());
        if (null != bookedOrPickedVoy.getDeparture().getStateId()) {
            pierValues.append("/").append(bookedOrPickedVoy.getDeparture().getStateId().getCode());
        }
    }
    Paragraph p = null;
    table = new PdfPTable(2);
    table.setWidthPercentage(100f);
    table.setWidths(new float[] { 5.3f, 4.7f });
    PdfPCell bCell = null;

    bCell = new PdfPCell();
    bCell.setBorder(0);
    bCell.setPadding(0f);
    bCell.setBorderWidthBottom(0.06f);
    bCell.setBorderWidthTop(0.06f);
    bCell.setBorderWidthRight(0.06f);
    PdfPTable bTable = new PdfPTable(2);
    bTable.setWidths(new float[] { 5f, 4f });
    bTable.setWidthPercentage(100f);

    bTable.addCell(makeCellLeftTopNoBorderFont("SHIPPER/EXPORTER", -0.5f, 0.8f, blackBoldFont65));

    PdfPCell shCell = new PdfPCell();
    shCell.setBorder(0);
    shCell.setColspan(2);
    shCell.setPadding(0f);
    shCell.setPaddingLeft(4f);
    shCell.setBorderWidthBottom(0.06f);
    shCell.setFixedHeight(65f);
    String shipperDetails = lclUtils.getConcatenatedAccountDetails(lclbl.getShipContact());
    if (CommonUtils.isNotEmpty(shipperDetails)) {
        p = new Paragraph(11f, "" + shipperDetails.toUpperCase(), totalFontQuote);
        p.setAlignment(Element.ALIGN_LEFT);
        p.setSpacingAfter(15f);
    } else {
        p = new Paragraph(8f, "", totalFontQuote);
        shCell.setPadding(35f);
    }
    shCell.addElement(p);
    bTable.addCell(shCell);

    //consignee
    bTable.addCell(makeCellLeftTopNoBorderFont("CONSIGNEE", -0.5f, 0.8f, blackBoldFont65));
    //consignee Values
    PdfPCell cvCell = new PdfPCell();
    cvCell.setBorder(0);
    cvCell.setColspan(2);
    cvCell.setPadding(0f);
    cvCell.setPaddingLeft(4f);
    cvCell.setBorderWidthBottom(0.06f);
    cvCell.setFixedHeight(65f);
    String consDetails = lclUtils.getConcatenatedAccountDetails(lclbl.getConsContact());
    if (CommonUtils.isNotEmpty(consDetails)) {
        p = new Paragraph(11f, "" + consDetails.toUpperCase(), totalFontQuote);
        p.setSpacingAfter(15f);
        p.setAlignment(Element.ALIGN_LEFT);
    } else {
        p = new Paragraph(8f, "", totalFontQuote);
        cvCell.setPadding(30f);
    }
    cvCell.addElement(p);
    bTable.addCell(cvCell);

    //Notify
    bTable.addCell(makeCellLeftTopNoBorderFont("NOTIFY PARTY", -0.5f, 0.8f, blackBoldFont65));
    //consignee Values
    PdfPCell nvCell = new PdfPCell();
    nvCell.setBorder(0);
    nvCell.setColspan(2);
    nvCell.setPadding(0f);
    nvCell.setPaddingLeft(4f);
    nvCell.setBorderWidthBottom(0.06f);
    nvCell.setFixedHeight(70f);
    String notyDetails = lclUtils.getConcatenatedAccountDetails(lclbl.getNotyContact());
    if (CommonUtils.isNotEmpty(notyDetails)) {
        p = new Paragraph(11f, "" + notyDetails.toUpperCase(), totalFontQuote);
        p.setSpacingAfter(25f);
        p.setAlignment(Element.ALIGN_LEFT);
    } else {
        p = new Paragraph(8f, "", totalFontQuote);
        nvCell.setPadding(40f);
    }
    nvCell.addElement(p);
    bTable.addCell(nvCell);

    //place of receipt
    PdfPCell prCell = new PdfPCell();
    prCell.setBorder(0);
    prCell.setPaddingLeft(-0.9f);
    prCell.setPaddingTop(-0.2f);
    p = new Paragraph(7f, "PLACE OF RECEIPT", blackBoldFont65);
    p.setAlignment(Element.ALIGN_LEFT);
    prCell.addElement(p);
    bTable.addCell(prCell);
    /* Pier Logic */
    String pier = "N".equalsIgnoreCase(printPierPol)
            ? ("N".equalsIgnoreCase(printPierPol) && !"N".equalsIgnoreCase(hblPierOverRideKey))
                    ? hblPierOverRideKey
                    : pierValues.toString()
            : "";
    /* POL Logic */
    String pol = "";
    if ("Y".equalsIgnoreCase(printPierPol)) {
        if ("N".equalsIgnoreCase(hblPierOverRideKey)) {
            pol = pierValues.toString();
        } else {
            pol = hblPierOverRideKey;
        }
    } else {
        pol = !"N".equalsIgnoreCase(hblPolOverRideKey) ? hblPolOverRideKey : polValues;
    }
    Boolean checkBlInsurance = new LclBlAcDAO().checkBlInsurance(lclbl.getFileNumberId(),
            INSURANCE_CHARGE_CODE);
    if (checkBlInsurance && "Y".equalsIgnoreCase(printBlInsuranceKey)) {
        InsStatement = LoadLogisoftProperties.getProperty("InsuranceChargeComment");
    }
    PdfPCell pierCell = new PdfPCell();
    pierCell.setBorder(0);
    pierCell.setBorderWidthLeft(0.06f);
    pierCell.setPaddingTop(-0.2f);
    p = new Paragraph(7f, "PIER", blackBoldFont65);
    p.setAlignment(Element.ALIGN_LEFT);
    pierCell.addElement(p);
    bTable.addCell(pierCell);
    //place of receipt values
    PdfPCell prvCell = new PdfPCell();
    prvCell.setBorder(0);
    prvCell.setBorderWidthBottom(0.06f);
    if (lclBooking.getPooPickup()) {
        LclBookingPad lclBookingPad = lclBooking.getLclFileNumber().getLclBookingPadList().get(0);
        String pickUp_city = lclBookingPad.getPickUpCity().replaceAll("/", ",");
        pickUp_city = pickUp_city.substring(pickUp_city.indexOf("-") + 1, pickUp_city.length());
        p = new Paragraph(7f, "" + pickUp_city.toUpperCase(), totalFontQuote);
    } else {
        StringBuilder placeofReceipt = new StringBuilder();
        if (null != lclbl.getPortOfOrigin()) {
            placeofReceipt.append(lclbl.getPortOfOrigin().getUnLocationName());
            if (CommonFunctions.isNotNull(lclbl.getPortOfOrigin().getStateId())
                    && CommonFunctions.isNotNull(lclbl.getPortOfOrigin().getStateId().getCode())) {
                placeofReceipt.append(",").append(lclbl.getPortOfOrigin().getStateId().getCode());
            }
        }
        p = new Paragraph(7f, "" + placeofReceipt.toString().toUpperCase(), totalFontQuote);
    }
    p.setSpacingAfter(5f);
    p.setSpacingBefore(5f);
    p.setAlignment(Element.ALIGN_LEFT);
    prvCell.addElement(p);
    bTable.addCell(prvCell);
    //pier values

    PdfPCell piervCell = new PdfPCell();
    piervCell.setBorder(0);
    piervCell.setBorderWidthLeft(0.06f);
    piervCell.setBorderWidthBottom(0.06f);
    p = new Paragraph(7f, "" + pier, totalFontQuote);
    p.setSpacingAfter(5f);
    p.setSpacingBefore(5f);
    p.setAlignment(Element.ALIGN_LEFT);
    piervCell.addElement(p);
    bTable.addCell(piervCell);

    //exporting carrier
    PdfPCell ecCell = new PdfPCell();
    ecCell.setBorder(0);
    ecCell.setPaddingLeft(-0.5f);
    ecCell.setPaddingTop(-0.2f);
    p = new Paragraph(7f, "EXPORTING CARRIER (Vessel) (Flag)", blackBoldFont65);
    p.setAlignment(Element.ALIGN_LEFT);
    ecCell.addElement(p);
    bTable.addCell(ecCell);
    //portof loading
    PdfPCell portCell = new PdfPCell();
    portCell.setBorder(0);
    portCell.setPaddingTop(-0.2f);
    portCell.setBorderWidthLeft(0.06f);
    p = new Paragraph(7f, "PORT OF LOADING", blackBoldFont65);
    p.setAlignment(Element.ALIGN_LEFT);
    portCell.addElement(p);
    bTable.addCell(portCell);
    //exporting values
    PdfPCell exvCell = new PdfPCell();
    exvCell.setBorder(0);
    exvCell.setFixedHeight(15f);
    exvCell.setBorderWidthBottom(0.06f);
    p = new Paragraph(7f, "" + carrierName.toString().toUpperCase(), totalFontQuote);
    p.setSpacingAfter(5f);
    p.setSpacingBefore(5f);
    p.setAlignment(Element.ALIGN_LEFT);
    exvCell.addElement(p);
    bTable.addCell(exvCell);
    //port of loading values

    PdfPCell portvCell = new PdfPCell();
    portvCell.setBorder(0);
    portvCell.setBorderWidthLeft(0.06f);
    portvCell.setBorderWidthBottom(0.06f);
    p = new Paragraph(7f, "" + pol.toUpperCase(), totalFontQuote);
    p.setAlignment(Element.ALIGN_LEFT);
    portvCell.addElement(p);
    bTable.addCell(portvCell);
    //sea port of discharge
    PdfPCell seaCell = new PdfPCell();
    seaCell.setBorder(0);
    seaCell.setPaddingLeft(-0.5f);
    seaCell.setPaddingTop(-0.2f);
    p = new Paragraph(7f, "SEA PORT OF DISCHARGE", blackBoldFont65);
    p.setAlignment(Element.ALIGN_LEFT);
    seaCell.addElement(p);
    bTable.addCell(seaCell);
    //finalde
    PdfPCell finalCell = new PdfPCell();
    finalCell.setBorder(0);
    finalCell.setBorderWidthLeft(0.06f);
    finalCell.setPaddingTop(-0.2f);
    p = new Paragraph(7f, "FINAL DELIVERY TO", blackBoldFont65);
    p.setAlignment(Element.ALIGN_LEFT);
    finalCell.addElement(p);
    bTable.addCell(finalCell);
    //sea values
    PdfPCell seavCell = new PdfPCell();
    seavCell.setBorder(0);
    seavCell.setFixedHeight(25f);
    //   seavCell.setBorderWidthBottom(0.06f);
    p = new Paragraph(7f, "" + podValues.toUpperCase(), totalFontQuote);
    p.setAlignment(Element.ALIGN_LEFT);
    seavCell.addElement(p);
    bTable.addCell(seavCell);
    //fina deliver  values

    String finalDest = !fdOverride.equalsIgnoreCase("N") ? fdOverride
            : (agencyInfo != null && CommonUtils.isNotEmpty(agencyInfo[2])) ? agencyInfo[2]
                    : blUtils.getBLConcatenatedFinalDestination(lclbl);
    PdfPCell finalvCell = new PdfPCell();
    finalvCell.setBorder(0);
    finalvCell.setBorderWidthLeft(0.06f);
    p = new Paragraph(7f, !finalDest.equalsIgnoreCase(podValues) ? "" + finalDest.toUpperCase() : "",
            totalFontQuote);
    p.setAlignment(Element.ALIGN_LEFT);
    finalvCell.addElement(p);
    bTable.addCell(finalvCell);

    bCell.addElement(bTable);
    table.addCell(bCell);
    //2column

    cell = new PdfPCell();
    cell.setBorder(0);
    cell.setPadding(0f);
    cell.setBorderWidthBottom(0.06f);
    cell.setBorderWidthTop(0.06f);
    PdfPTable pTable = new PdfPTable(2);
    pTable.setWidths(new float[] { 4f, 2f });
    pTable.setWidthPercentage(100f);
    PdfPCell nCell = null;

    nCell = new PdfPCell();
    nCell.setBorder(0);
    nCell.setPaddingTop(0.2f);
    p = new Paragraph(7f, "DOCUMENT NO", blackBoldFont65);
    p.setAlignment(Element.ALIGN_LEFT);
    nCell.addElement(p);
    pTable.addCell(nCell);

    nCell = new PdfPCell();
    nCell.setBorder(0);
    nCell.setPaddingTop(0.2f);
    p = new Paragraph(7f, "PAGE : " + ++page_count, blackBoldFont65);
    p.setAlignment(Element.ALIGN_RIGHT);
    nCell.addElement(p);
    pTable.addCell(nCell);

    String consolidateNumber = new LclConsolidateDAO()
            .getConsolidatesFileNumbers(lclbl.getLclFileNumber().getId().toString());
    consolidateNumber = null == consolidateNumber ? lclbl.getLclFileNumber().getFileNumber()
            : lclbl.getLclFileNumber().getFileNumber() + "," + consolidateNumber;

    PdfPCell dvCell = new PdfPCell();
    dvCell.setBorder(0);
    dvCell.setColspan(2);
    dvCell.setBorderWidthBottom(0.06f);
    dvCell.setPaddingLeft(8f);
    dvCell.setPaddingBottom(5f);
    dvCell.setPaddingTop(2f);
    p = new Paragraph(8f, "" + consolidateNumber.toUpperCase(), totalFontQuote);
    p.setAlignment(Element.ALIGN_LEFT);
    dvCell.addElement(p);
    pTable.addCell(dvCell);

    PdfPCell eCell = new PdfPCell();
    eCell.setBorder(0);
    eCell.setPaddingTop(0.2f);
    eCell.setColspan(2);
    p = new Paragraph(7f, "EXPORT REFERENCE", blackBoldFont65);
    p.setAlignment(Element.ALIGN_LEFT);
    eCell.addElement(p);
    pTable.addCell(eCell);

    PdfPCell evCell = new PdfPCell();
    evCell.setBorder(0);
    evCell.setColspan(2);
    evCell.setBorderWidthBottom(0.06f);
    evCell.setPaddingLeft(8f);
    evCell.setFixedHeight(35f);
    exportRefRemarks = exportRefRemarks
            + ("EXPORT".equalsIgnoreCase(ladenSailDateOptKey) ? ladenSailDateRemarks : "")
            + ("EXPORT".equalsIgnoreCase(printTermsTypeKey) ? termsType1 : "");
    if (exportRefRemarks != null && !exportRefRemarks.equals("")) {
        p = new Paragraph(10f, "" + exportRefRemarks, totalFontQuote);
        p.setAlignment(Element.ALIGN_LEFT);
    } else {
        p = new Paragraph(8f, "", contentBLNormalFont);
    }
    evCell.addElement(p);
    pTable.addCell(evCell);

    PdfPCell fCell = new PdfPCell();
    fCell.setBorder(0);
    fCell.setColspan(2);
    fCell.setPaddingTop(0.2f);
    p = new Paragraph(7f, "FORWARDING AGENT-REFERENCES", blackBoldFont65);
    p.setAlignment(Element.ALIGN_LEFT);
    fCell.addElement(p);
    pTable.addCell(fCell);
    //forwarding avlues
    PdfPCell fvCell = new PdfPCell();
    fvCell.setBorder(0);
    fvCell.setColspan(2);
    fvCell.setPaddingLeft(3f);
    fvCell.setPaddingTop(2f);
    fvCell.setBorderWidthBottom(0.06f);
    fvCell.setFixedHeight(65f);
    if (null != lclbl.getFwdAcct()
            && !lclbl.getFwdAcct().getAccountName().equalsIgnoreCase("NO FRT. FORWARDER ASSIGNED")) {
        boolean forwarderAcctFlag = new LCLBlDAO()
                .getFreightForwardAcctStatus(lclbl.getFwdAcct().getAccountno());
        String fwdDetails = lclUtils.getConcatenatedAccountDetails(lclbl.getFwdContact());
        if (CommonUtils.isNotEmpty(fwdDetails) && !forwarderAcctFlag) {
            p = new Paragraph(11f, "" + fwdDetails.toUpperCase(), totalFontQuote);
            p.setSpacingAfter(15f);
            p.setAlignment(Element.ALIGN_LEFT);
        } else {
            p = new Paragraph(8f, "", totalFontQuote);
            fvCell.setPadding(25f);
        }
        fvCell.addElement(p);
        pTable.addCell(fvCell);
    } else {
        p = new Paragraph(8f, "", totalFontQuote);
        fvCell.setBorderWidthBottom(0.06f);
        pTable.addCell(fvCell);
    }

    //pointoforigin
    PdfPCell pCell = new PdfPCell();
    pCell.setBorder(0);
    pCell.setColspan(2);
    pCell.setPaddingTop(0.2f);
    p = new Paragraph(7f, "POINT AND COUNTRY OF ORIGIN", blackBoldFont65);
    p.setAlignment(Element.ALIGN_LEFT);
    pCell.addElement(p);
    pTable.addCell(pCell);
    //point avlues
    PdfPCell pvCell = new PdfPCell();
    pvCell.setBorder(0);
    pvCell.setColspan(2);
    pvCell.setPaddingLeft(8f);
    pvCell.setPaddingBottom(5f);
    pvCell.setPaddingTop(2f);
    pvCell.setFixedHeight(20f);
    pvCell.setBorderWidthBottom(0.06f);
    if (lclbl.getPointOfOrigin() != null) {
        p = new Paragraph(9f, "" + lclbl.getPointOfOrigin(), totalFontQuote);
        pvCell.addElement(p);
    }
    p.setAlignment(Element.ALIGN_LEFT);
    pTable.addCell(pvCell);

    //domes
    PdfPCell doCell = new PdfPCell();
    doCell.setBorder(0);
    doCell.setColspan(2);
    doCell.setPaddingTop(0.2f);
    p = new Paragraph(7f, "DOMESTIC ROUTING/EXPORT INSTRUCTIONS", blackBoldFont65);
    p.setAlignment(Element.ALIGN_LEFT);
    doCell.addElement(p);
    pTable.addCell(doCell);
    //point avlues
    PdfPCell dovCell = new PdfPCell();
    dovCell.setBorder(0);
    dovCell.setColspan(2);
    dovCell.setPaddingLeft(8f);
    dovCell.setBorderWidthBottom(0.06f);
    dovCell.setFixedHeight(45f);
    routingInsRemarks = routingInsRemarks
            + ("ROUTING".equalsIgnoreCase(ladenSailDateOptKey) ? ladenSailDateRemarks : "")
            + ("ROUTING".equalsIgnoreCase(printTermsTypeKey) ? termsType1 : "");
    if (routingInsRemarks != null && !"".equalsIgnoreCase(routingInsRemarks)) {
        p = new Paragraph(10f, "" + routingInsRemarks, totalFontQuote);
        p.setSpacingAfter(10f);
        p.setAlignment(Element.ALIGN_LEFT);
    } else {
        p = new Paragraph(8f, "", contentBLNormalFont);
        dovCell.setPadding(15f);
    }
    dovCell.addElement(p);
    pTable.addCell(dovCell);

    //addito
    PdfPCell adCell = new PdfPCell();
    adCell.setBorder(0);
    adCell.setColspan(2);
    adCell.setPaddingTop(0.2f);
    p = new Paragraph(7f, "ADDITIONAL DOCUMENT NUMBERS", blackBoldFont65);
    p.setAlignment(Element.ALIGN_LEFT);
    adCell.addElement(p);
    pTable.addCell(adCell);
    //add values
    PdfPCell advCell = new PdfPCell();
    advCell.setBorder(0);
    advCell.setColspan(2);
    advCell.setPadding(10f);
    p = new Paragraph(7f, InsStatement, totalFontQuote);
    p.setAlignment(Element.ALIGN_LEFT);
    advCell.addElement(p);
    pTable.addCell(advCell);

    cell.addElement(pTable);
    table.addCell(cell);
    return table;
}

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

public PdfPTable appendChargesAndCommodity() throws Exception {
    LclBlAcDAO lclBlAcDAO = new LclBlAcDAO();
    List<LclBlPiece> lclBlPiecesList = lclbl.getLclFileNumber().getLclBlPieceList();
    List<LclBlAc> chargeList = lclBlAcDAO.getLclCostByFileNumberAsc(lclbl.getFileNumberId());
    PdfPTable chargeTable = new PdfPTable(6);
    PdfPCell chargeCell = null;
    chargeTable.setWidths(new float[] { 3.8f, 1.5f, .8f, 3.8f, 1.5f, .8f });
    chargeTable.setWidthPercentage(100f);
    Paragraph p = null;/*ww w.  j a v a 2  s  .  co m*/

    this.total_ar_amount = 0.00;
    this.total_ar_col_amount = 0.00;
    this.total_ar_ppd_amount = 0.00;

    List<LinkedHashMap<String, PdfPCell>> listChargeMap = null;
    LinkedHashMap<String, PdfPCell> chargeMap = null;
    if ("BOTH".equalsIgnoreCase(billType)) {
        listChargeMap = this.getTotalChargesList(chargeList, lclBlPiecesList);
    } else {
        chargeMap = this.getTotalCharges(chargeList, lclBlPiecesList);
    }

    LclBlAc blAC = lclBlAcDAO.manualChargeValidate(lclbl.getFileNumberId(), "OCNFRT", false);
    if (lclBlPiecesList != null && lclBlPiecesList.size() > 0 && blAC != null) {
        BigDecimal CFT = BigDecimal.ZERO, LBS = BigDecimal.ZERO;
        LclBlPiece lclBlPiece = (LclBlPiece) lclBlPiecesList.get(0);
        if (blAC.getRatePerUnitUom() != null) {
            CFT = blAC.getRatePerUnitUom().equalsIgnoreCase("FRV") ? blAC.getRatePerVolumeUnit()
                    : BigDecimal.ZERO;
            LBS = blAC.getRatePerUnitUom().equalsIgnoreCase("FRW") ? blAC.getRatePerWeightUnit()
                    : BigDecimal.ZERO;
        }
        if (CFT != BigDecimal.ZERO || LBS != BigDecimal.ZERO) {
            StringBuilder cbmValues = new StringBuilder();
            if (CFT != BigDecimal.ZERO && lclBlPiece.getActualVolumeImperial() != null) {
                cbmValues.append(NumberUtils
                        .convertToThreeDecimalhash(lclBlPiece.getActualVolumeImperial().doubleValue()));
            }
            if (LBS != BigDecimal.ZERO && lclBlPiece.getActualWeightImperial() != null) {
                cbmValues.append(NumberUtils
                        .convertToThreeDecimalhash(lclBlPiece.getActualWeightImperial().doubleValue()));
            }
            if (null != blAC.getArAmount() && blAC.getArAmount().toString().equalsIgnoreCase(OCNFRT_Total)) {
                if (CFT == BigDecimal.ZERO) {
                    cbmValues.append(" LBS @ ").append(LBS).append(" PER 100 LBS @ ")
                            .append(blAC.getArAmount());
                } else {
                    cbmValues.append(" CFT @ ").append(CFT).append(" PER CFT @").append(blAC.getArAmount());
                }
                chargeCell = new PdfPCell();
                chargeCell.setBorder(0);
                chargeCell.setColspan(6);
                chargeTable.addCell(chargeCell);

                chargeCell = new PdfPCell();
                chargeCell.setBorder(0);
                chargeCell.setColspan(6);
                p = new Paragraph(2f, "" + cbmValues.toString().toUpperCase(), totalFontQuote);
                p.add(new Paragraph(2f,
                        null != lclBlPiece && null != lclBlPiece.getCommodityType()
                                ? "   Commodity# " + lclBlPiece.getCommodityType().getCode()
                                : "   Commodity#",
                        totalFontQuote));
                p.setAlignment(Element.ALIGN_LEFT);
                chargeCell.addElement(p);
                chargeTable.addCell(chargeCell);
            }
        }
    }
    this.OCNFRT_Total = "";
    LinkedHashMap<String, PdfPCell> left_chargeMap = new LinkedHashMap<String, PdfPCell>();
    LinkedHashMap<String, PdfPCell> right_chargeMap = new LinkedHashMap<String, PdfPCell>();
    if ("BOTH".equalsIgnoreCase(billType) && listChargeMap != null && !listChargeMap.isEmpty()) {
        if (listChargeMap.size() > 1) {
            if (listChargeMap.get(0).size() > 6 || listChargeMap.get(1).size() > 6) {
                chargeMap = new LinkedHashMap<String, PdfPCell>();
                chargeMap.putAll(listChargeMap.get(0));
                chargeMap.putAll(listChargeMap.get(1));
                int count = 0, size = chargeMap.size() / 2 <= 6 ? 6 : chargeMap.size() / 2;
                for (String key : chargeMap.keySet()) {
                    if (count++ < size) {
                        left_chargeMap.put(key, chargeMap.get(key));
                    } else {
                        right_chargeMap.put(key, chargeMap.get(key));
                    }
                }
            } else {
                left_chargeMap.putAll(listChargeMap.get(0));
                right_chargeMap.putAll(listChargeMap.get(1));
            }
        } else {
            int count = 0, size = listChargeMap.get(0).size() / 2 <= 6 ? 6 : listChargeMap.get(0).size() / 2;
            for (String key : listChargeMap.get(0).keySet()) {
                if (count++ < size) {
                    left_chargeMap.put(key, listChargeMap.get(0).get(key));
                } else {
                    right_chargeMap.put(key, listChargeMap.get(0).get(key));
                }
            }
        }
    } else if (chargeMap != null && !chargeMap.isEmpty()) {
        int count = 0, size = chargeMap.size() / 2 <= 6 ? 6 : chargeMap.size() / 2;
        for (String key : chargeMap.keySet()) {
            if (count++ < size) {
                left_chargeMap.put(key, chargeMap.get(key));
            } else {
                right_chargeMap.put(key, chargeMap.get(key));
            }
        }
    }

    if (!left_chargeMap.isEmpty()) {
        String chargeDesc = null;
        PdfPTable innner_chargeTable = new PdfPTable(2);
        innner_chargeTable.setWidthPercentage(100f);
        PdfPCell inner_chargeCell = null;

        chargeCell = new PdfPCell();
        chargeCell.setBorder(0);
        chargeCell.setColspan(3);
        chargeCell.setBorderWidthRight(0.6f);
        chargeCell.setPadding(0);
        innner_chargeTable = new PdfPTable(2);
        innner_chargeTable.setWidths(new float[] { 5f, 3f });
        if (!left_chargeMap.isEmpty()) {
            for (String key : left_chargeMap.keySet()) {
                inner_chargeCell = new PdfPCell();
                inner_chargeCell.setBorder(0);
                inner_chargeCell.setPaddingLeft(-15);
                chargeDesc = key.substring(key.indexOf("#") + 1, key.indexOf("$"));
                inner_chargeCell.addElement(new Paragraph(7f, "" + chargeDesc, totalFontQuote));
                innner_chargeTable.addCell(inner_chargeCell);

                inner_chargeCell = new PdfPCell();
                inner_chargeCell.setBorder(0);
                inner_chargeCell = left_chargeMap.get(key);
                innner_chargeTable.addCell(inner_chargeCell);
            }
        }
        chargeCell.addElement(innner_chargeTable);
        chargeTable.addCell(chargeCell);

        chargeCell = new PdfPCell();
        chargeCell.setBorder(0);
        chargeCell.setColspan(3);
        chargeCell.setPadding(0);
        innner_chargeTable = new PdfPTable(2);
        innner_chargeTable.setWidths(new float[] { 5f, 3f });
        if (!left_chargeMap.isEmpty()) {
            for (String key : right_chargeMap.keySet()) {
                inner_chargeCell = new PdfPCell();
                inner_chargeCell.setBorder(0);
                inner_chargeCell.setPaddingLeft(-15);
                chargeDesc = key.substring(key.indexOf("#") + 1, key.indexOf("$"));
                inner_chargeCell.addElement(new Paragraph(7f, "" + chargeDesc, totalFontQuote));
                innner_chargeTable.addCell(inner_chargeCell);

                inner_chargeCell = new PdfPCell();
                inner_chargeCell.setBorder(0);
                inner_chargeCell = right_chargeMap.get(key);
                innner_chargeTable.addCell(inner_chargeCell);
            }
        }
        chargeCell.addElement(innner_chargeTable);
        chargeTable.addCell(chargeCell);
    } else {
        this.total_ar_amount = 0.00;
        this.total_ar_ppd_amount = 0.00;
        this.total_ar_col_amount = 0.00;
    }
    String acctNo = "";
    String billToParty = "";
    if (CommonFunctions.isNotNull(lclbl.getBillToParty()) && CommonUtils.isNotEmpty(lclbl.getBillToParty())) {
        if (lclbl.getBillToParty().equalsIgnoreCase("T")
                && CommonFunctions.isNotNull(lclbl.getThirdPartyAcct())) {
            billToParty = "THIRD PARTY";
            acctNo = lclbl.getThirdPartyAcct().getAccountno();
        } else if (lclbl.getBillToParty().equalsIgnoreCase("S")
                && CommonFunctions.isNotNull(lclbl.getShipAcct())) {
            billToParty = "SHIPPER";
            acctNo = lclbl.getShipAcct().getAccountno();
        } else if (lclbl.getBillToParty().equalsIgnoreCase("F")
                && CommonFunctions.isNotNull(lclbl.getFwdAcct())) {
            billToParty = "FORWARDER";
            acctNo = lclbl.getFwdAcct().getAccountno();
        } else if (lclbl.getBillToParty().equalsIgnoreCase("A")
                && CommonFunctions.isNotNull(lclbl.getAgentAcct())) {
            billToParty = "AGENT";
            if (lclBooking.getBookingType().equals("T")
                    && lclbl.getLclFileNumber().getLclBookingImport().getExportAgentAcctNo() != null) {
                acctNo = lclbl.getLclFileNumber().getLclBookingImport().getExportAgentAcctNo().getAccountno();
            } else if (lclBooking.getAgentAcct() != null) {
                acctNo = lclBooking.getAgentAcct().getAccountno();
            } else {
                acctNo = lclbl.getAgentAcct().getAccountno();
            }
        }
    }

    if ("BOTH".equalsIgnoreCase(billType)) {
        if (this.total_ar_ppd_amount != 0.00 || this.total_ar_col_amount != 0.00) {
            if (this.total_ar_ppd_amount != 0.00) {
                if (CommonFunctions.isNotNullOrNotEmpty(ppdBillToSet) && ppdBillToSet.size() == 1) {
                    for (String billTo : ppdBillToSet) {
                        arBillToParty = billTo;
                        break;
                    }
                    if (arBillToParty.equalsIgnoreCase("T")) {
                        billToParty = "THIRD PARTY";
                        acctNo = null != lclbl.getThirdPartyAcct() ? lclbl.getThirdPartyAcct().getAccountno()
                                : acctNo;
                    } else if (arBillToParty.equalsIgnoreCase("S")) {
                        acctNo = null != lclbl.getShipAcct() ? lclbl.getShipAcct().getAccountno() : acctNo;
                        billToParty = "SHIPPER";
                    } else if (arBillToParty.equalsIgnoreCase("F")) {
                        billToParty = "FORWARDER";
                        acctNo = null != lclbl.getFwdAcct() ? lclbl.getFwdAcct().getAccountno() : acctNo;
                    }
                } else {
                    acctNo = null;
                }
                chargeCell = new PdfPCell();
                chargeCell.setBorder(0);
                chargeCell.setColspan(2);
                p = new Paragraph(7f, "T O T A L (USA)", totalFontQuote);
                p.setAlignment(Element.ALIGN_LEFT);
                chargeCell.addElement(p);
                chargeTable.addCell(chargeCell);

                chargeCell = new PdfPCell();
                chargeCell.setColspan(4);
                chargeCell.setBorder(0);
                if (null != acctNo) {
                    p = new Paragraph(7f, "$" + NumberUtils.convertToTwoDecimal(this.total_ar_ppd_amount)
                            + " PPD " + billToParty + "-" + acctNo, totalFontQuote);
                } else {
                    p = new Paragraph(7f,
                            "$" + NumberUtils.convertToTwoDecimal(this.total_ar_ppd_amount) + " PPD ",
                            totalFontQuote);
                }
                p.setAlignment(Element.ALIGN_LEFT);
                chargeCell.addElement(p);
                chargeTable.addCell(chargeCell);
            }

            if (this.total_ar_col_amount != 0.00) {
                String colAcctNo = "";
                if (lclBooking.getBookingType().equals("T")
                        && lclbl.getLclFileNumber().getLclBookingImport().getExportAgentAcctNo() != null) {
                    colAcctNo = lclbl.getLclFileNumber().getLclBookingImport().getExportAgentAcctNo()
                            .getAccountno();
                } else if (lclBooking.getAgentAcct() != null) {
                    colAcctNo = lclBooking.getAgentAcct().getAccountno();
                } else if (lclbl.getAgentAcct() != null) {
                    colAcctNo = lclbl.getAgentAcct().getAccountno();
                }
                chargeCell = new PdfPCell();
                chargeCell.setBorder(0);
                chargeCell.setColspan(2);
                if (this.total_ar_ppd_amount == 0.00) {
                    p = new Paragraph(7f, "T O T A L (USA)", totalFontQuote);
                } else {
                    p = new Paragraph(7f, "", totalFontQuote);
                }
                p.setAlignment(Element.ALIGN_LEFT);
                chargeCell.addElement(p);
                chargeTable.addCell(chargeCell);

                chargeCell = new PdfPCell();
                chargeCell.setColspan(4);
                chargeCell.setBorder(0);
                p = new Paragraph(7f, "$" + NumberUtils.convertToTwoDecimal(this.total_ar_col_amount)
                        + " COL AGENT-" + colAcctNo, totalFontQuote);
                p.setAlignment(Element.ALIGN_LEFT);
                chargeCell.addElement(p);
                chargeTable.addCell(chargeCell);
            }

            NumberFormat numberFormat = new DecimalFormat("###,###,##0.000");
            if (this.total_ar_ppd_amount != 0.00) {
                String totalString1 = numberFormat.format(this.total_ar_ppd_amount).replaceAll(",", "");
                int indexdot = totalString1.indexOf(".");
                String beforeDecimal = totalString1.substring(0, indexdot);
                String afterDecimal = totalString1.substring(indexdot + 1, totalString1.length());
                chargeCell = new PdfPCell();
                chargeCell.setColspan(6);
                chargeCell.setBorder(0);
                p = new Paragraph(7f, "" + ConvertNumberToWords.convert(Integer.parseInt(beforeDecimal))
                        + " DOLLARS AND " + StringUtils.removeEnd(afterDecimal, "0") + " CENTS",
                        totalFontQuote);
                chargeCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                chargeCell.addElement(p);
                chargeTable.addCell(chargeCell);
            }
            if (this.total_ar_col_amount != 0.00) {
                String totalString1 = numberFormat.format(this.total_ar_col_amount).replaceAll(",", "");
                int indexdot = totalString1.indexOf(".");
                String beforeDecimal = totalString1.substring(0, indexdot);
                String afterDecimal = totalString1.substring(indexdot + 1, totalString1.length());
                chargeCell = new PdfPCell();
                chargeCell.setColspan(6);
                chargeCell.setBorder(0);
                p = new Paragraph(7f, "" + ConvertNumberToWords.convert(Integer.parseInt(beforeDecimal))
                        + " DOLLARS AND " + StringUtils.removeEnd(afterDecimal, "0") + " CENTS",
                        totalFontQuote);
                chargeCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                chargeCell.addElement(p);
                chargeTable.addCell(chargeCell);
            }
        }
    } else if (this.total_ar_amount != 0.00) {
        chargeCell = new PdfPCell();
        chargeCell.setBorder(0);
        chargeCell.setColspan(2);
        chargeCell.setPaddingTop(8f);
        p = new Paragraph(7f, "T O T A L (USA)", totalFontQuote);
        p.setAlignment(Element.ALIGN_LEFT);
        chargeCell.addElement(p);
        chargeTable.addCell(chargeCell);

        chargeCell = new PdfPCell();
        chargeCell.setColspan(4);
        chargeCell.setBorder(0);
        chargeCell.setPaddingTop(8f);
        p = new Paragraph(7f, "$" + NumberUtils.convertToTwoDecimal(this.total_ar_amount) + " " + billType + " "
                + billToParty + "-" + acctNo, totalFontQuote);
        p.setAlignment(Element.ALIGN_LEFT);
        chargeCell.addElement(p);
        chargeTable.addCell(chargeCell);

        NumberFormat numberFormat = new DecimalFormat("###,###,##0.000");

        String totalString1 = numberFormat.format(this.total_ar_amount).replaceAll(",", "");
        int indexdot = totalString1.indexOf(".");
        String beforeDecimal = totalString1.substring(0, indexdot);
        String afterDecimal = totalString1.substring(indexdot + 1, totalString1.length());
        chargeCell = new PdfPCell();
        chargeCell.setColspan(6);
        chargeCell.setBorder(0);
        p = new Paragraph(7f, "" + ConvertNumberToWords.convert(Integer.parseInt(beforeDecimal))
                + " DOLLARS AND " + StringUtils.removeEnd(afterDecimal, "0") + " CENTS", totalFontQuote);
        chargeCell.setHorizontalAlignment(Element.ALIGN_CENTER);
        chargeCell.addElement(p);
        chargeTable.addCell(chargeCell);
    }

    chargeCell = new PdfPCell();
    chargeCell.setBorder(0);
    chargeCell.setColspan(4);
    p = new Paragraph(5f, "" + sailDateFormat, totalFontQuote);
    p.setAlignment(Element.ALIGN_LEFT);
    chargeCell.addElement(p);
    chargeTable.addCell(chargeCell);

    chargeCell = new PdfPCell();
    chargeCell.setColspan(5);
    chargeCell.setBorder(0);
    chargeTable.addCell(chargeCell);

    chargeCell = new PdfPCell();
    chargeCell.setColspan(3);
    chargeCell.setBorder(0);
    chargeCell.setRowspan(3);
    String fdPodValue = null;
    if (agencyInfo != null && CommonUtils.isNotEmpty(agencyInfo[2])) {
        fdPodValue = agencyInfo[2];
    } else if (CommonFunctions.isNotNull(lclbl.getFinalDestination())
            && CommonFunctions.isNotNull(lclbl.getFinalDestination().getCountryId())
            && CommonFunctions.isNotNull(lclbl.getFinalDestination().getCountryId().getCodedesc())) {
        fdPodValue = lclbl.getFinalDestination().getUnLocationName() + ","
                + lclbl.getFinalDestination().getCountryId().getCodedesc();
    }
    p = new Paragraph(7f, fdPodValue != null ? fdPodValue.toUpperCase() : podValues.toUpperCase(),
            totalFontQuote);
    p.setAlignment(Element.ALIGN_LEFT);
    chargeCell.addElement(p);
    chargeTable.addCell(chargeCell);

    chargeCell = new PdfPCell();
    chargeCell.setBorder(0);
    chargeCell.setColspan(3);
    p = new Paragraph(5f, "UNIT# " + unitNumber, headingblackBoldFont);
    p.setAlignment(Element.ALIGN_LEFT);
    chargeCell.addElement(p);
    chargeTable.addCell(chargeCell);

    chargeCell = new PdfPCell();
    chargeCell.setBorder(0);
    chargeCell.setColspan(3);
    chargeCell.setPaddingTop(2f);
    p = new Paragraph(5f, "SEAL# " + sealOut, headingblackBoldFont);
    p.setAlignment(Element.ALIGN_LEFT);
    chargeCell.addElement(p);
    chargeTable.addCell(chargeCell);

    chargeCell = new PdfPCell();
    chargeCell.setBorder(0);
    chargeCell.setColspan(3);
    chargeCell.setPaddingTop(2f);
    p = new Paragraph(5f, "CONTROL-VOY# " + voyageNumber, totalFontQuote);
    p.setAlignment(Element.ALIGN_LEFT);
    chargeCell.addElement(p);
    chargeTable.addCell(chargeCell);

    String emailId = "";
    StringBuilder agentDetails = new StringBuilder();
    //Agent Details
    String agentAcctNo = "";
    if ("Y".equalsIgnoreCase(altAgentKey)) {
        agentAcctNo = CommonUtils.isNotEmpty(altAgentValue) ? altAgentValue : "";
    } else if (lclbl.getAgentAcct() != null) {
        agentAcctNo = (agencyInfo != null && CommonUtils.isNotEmpty(agencyInfo[0])) ? agencyInfo[0]
                : lclbl.getAgentAcct().getAccountno();
    }
    if (CommonUtils.isNotEmpty(agentAcctNo)) {
        CustAddress custAddress = new CustAddressDAO().findPrimeContact(agentAcctNo);
        if (CommonFunctions.isNotNull(custAddress)) {
            if (CommonFunctions.isNotNull(custAddress.getAcctName())) {
                agentDetails.append(custAddress.getAcctName()).append("  ");
            }
            if (CommonFunctions.isNotNull(custAddress.getPhone())) {
                agentDetails.append("Phone: ").append(custAddress.getPhone()).append("\n");
            } else {
                agentDetails.append("\n");
            }
            if (CommonFunctions.isNotNull(custAddress.getCoName())) {
                agentDetails.append(custAddress.getCoName()).append("\n");
            }
            if (CommonFunctions.isNotNull(custAddress.getAddress1())) {
                agentDetails.append(custAddress.getAddress1().replace(", ", "\n")).append("\n");
            }
            if (CommonFunctions.isNotNull(custAddress.getCity1())) {
                agentDetails.append(custAddress.getCity1());
            }
            if (CommonFunctions.isNotNull(custAddress.getState())) {
                agentDetails.append("  ").append(custAddress.getState());
            }
            if (CommonFunctions.isNotNull(custAddress.getEmail1())) {
                emailId = custAddress.getEmail1();
            }
        }
    }
    BigDecimal PrintInvoiceValue = null;
    if (lclbl.getPortOfDestination() != null) {
        boolean schnum = new LCLPortConfigurationDAO().getSchnumValue(lclbl.getPortOfDestination().getId());
        if (schnum) {
            BigDecimal printInvoice = lclbl.getInvoiceValue();
            Long fileId = lclbl.getFileNumberId();
            if (!CommonUtils.isEmpty(printInvoice) && !CommonUtils.isEmpty(fileId)) {
                PrintInvoiceValue = printInvoice;
            }
        }
    }

    chargeCell = new PdfPCell();
    chargeCell.setBorder(2);
    chargeCell.setColspan(6);
    chargeCell.setPadding(0f);
    PdfPTable agent_Contact_Table = new PdfPTable(3);
    agent_Contact_Table.setWidthPercentage(100f);
    agent_Contact_Table.setWidths(new float[] { 2.3f, 1.7f, 1.8f });
    PdfPCell agent_Contact_cell = new PdfPCell();
    agent_Contact_cell.setBorder(0);
    agent_Contact_cell.setBorderWidthTop(1f);
    agent_Contact_cell.setBorderWidthLeft(1f);
    agent_Contact_cell.setBorderWidthBottom(0.06f);
    agent_Contact_cell.setBorderWidthRight(1f);
    p = new Paragraph(7f, "To Pick Up Freight Please Contact: ", blackContentNormalFont);
    p.setAlignment(Element.ALIGN_LEFT);
    agent_Contact_cell.addElement(p);
    agent_Contact_Table.addCell(agent_Contact_cell);

    agent_Contact_cell = new PdfPCell();
    agent_Contact_cell.setBorder(0);
    agent_Contact_cell.setColspan(2);
    agent_Contact_cell.setBorderWidthTop(1f);
    agent_Contact_cell.setPaddingBottom(2f);
    p = new Paragraph(7f, "Email: " + emailId.toLowerCase(), totalFontQuote);
    p.setAlignment(Element.ALIGN_LEFT);
    agent_Contact_cell.addElement(p);
    agent_Contact_Table.addCell(agent_Contact_cell);

    agent_Contact_cell = new PdfPCell();
    agent_Contact_cell.setColspan(2);
    agent_Contact_cell.setBorder(0);
    agent_Contact_cell.setBorderWidthLeft(1f);
    p = new Paragraph(7f, "" + agentDetails.toString(), totalFontQuote);
    p.setAlignment(Element.ALIGN_LEFT);
    agent_Contact_cell.addElement(p);
    agent_Contact_Table.addCell(agent_Contact_cell);

    agent_Contact_cell = new PdfPCell();
    agent_Contact_cell.setBorder(0);
    agent_Contact_cell.setPaddingTop(27f);
    p = new Paragraph(7f, "" + agentAcctNo, totalFontQuote);
    p.setAlignment(Element.ALIGN_RIGHT);
    agent_Contact_cell.addElement(p);
    agent_Contact_Table.addCell(agent_Contact_cell);

    agent_Contact_cell = new PdfPCell();
    agent_Contact_cell.setBorder(0);
    agent_Contact_cell.setColspan(3);
    agent_Contact_cell.setBorderWidthLeft(1f);
    StringBuilder builder = new StringBuilder();
    builder.append(PrintInvoiceValue != null ? "Value of Goods:USD $" + PrintInvoiceValue : "");
    p = new Paragraph(3f, "" + builder.toString(), totalFontQuote);
    p.setAlignment(Element.ALIGN_RIGHT);
    agent_Contact_cell.addElement(p);
    agent_Contact_Table.addCell(agent_Contact_cell);
    chargeCell.addElement(agent_Contact_Table);
    chargeTable.addCell(chargeCell);

    return chargeTable;
}

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

public PdfPTable appendDescComments() throws Exception {
    PdfPTable descTable = new PdfPTable(5);
    descTable.setWidthPercentage(100f);/*from  ww  w.  j a va 2 s  .  c  om*/
    descTable.setWidths(new float[] { 0.1f, 0.5f, 4f, 0.5f, 0.01f });
    PdfPCell descCell = null;
    Paragraph p = null;
    descCell = new PdfPCell();
    descCell.setBorder(0);
    descCell.setColspan(5);
    String comments = LoadLogisoftProperties.getProperty(ruleName.equalsIgnoreCase("ECU") ? "ECU.tariffterms"
            : this.ruleName.equalsIgnoreCase("OTI") ? "OTI.tariffterms" : "Econo.tariffterms");
    p = new Paragraph(8f, comments + "" + "" + "\n"
            + "IN WITNESS WHERE OF THE CARRIER BY ITS AGENT HAS SIGNED................. 3(THREE) BILLS OF LADING, ALL OF THE SAME TENOR AND DATE, "
            + "ONE OF WHICH BEING ACCOMPLISHED, THE OTHERS TO STAND VOID.\nPLEASE SEE OUR WEBSITE FOR TERMS AND CONDITIONS.",
            contentNormalFont);
    p.setSpacingAfter(10f);
    p.setAlignment(Element.ALIGN_LEFT);
    descCell.addElement(p);
    descCell.setFixedHeight(100f);
    descTable.addCell(descCell);

    descCell = new PdfPCell();
    descCell.setBorder(0);
    descTable.addCell(descCell);

    descCell = new PdfPCell();
    descCell.setColspan(5);
    descCell.setFixedHeight(10f);
    descCell.setBorder(0);
    descTable.addCell(descCell);

    descCell = new PdfPCell();
    descCell.setBorder(0);
    descCell.setColspan(2);
    descTable.addCell(descCell);

    descCell = new PdfPCell();
    descCell.setBorder(0);
    descCell.setBorderWidthBottom(0.06f);
    String carrierName = LoadLogisoftProperties.getProperty(ruleName.equalsIgnoreCase("ECU") ? "ECU.carrier"
            : ruleName.equalsIgnoreCase("OTI") ? "OTI.carrier" : "Econo.carrier");
    p = new Paragraph(12f, "BY " + carrierName.toUpperCase(), fontCompNormalSub);
    p.setAlignment(Element.ALIGN_LEFT);
    descCell.addElement(p);
    descTable.addCell(descCell);

    descCell = new PdfPCell();
    descCell.setBorder(0);
    descCell.setColspan(2);
    descTable.addCell(descCell);

    descCell = new PdfPCell();
    descCell.setFixedHeight(15f);
    descCell.setColspan(2);
    descCell.setBorder(0);
    descTable.addCell(descCell);

    descCell = new PdfPCell();
    descCell.setBorder(0);
    descCell.setBorderWidthBottom(0.06f);
    p = new Paragraph(7f, "", blackBoldFontSize8);
    p.setAlignment(Element.ALIGN_LEFT);
    descCell.addElement(p);
    descTable.addCell(descCell);

    descCell = new PdfPCell();
    descCell.setBorder(0);
    descCell.setColspan(2);
    descTable.addCell(descCell);

    descCell = new PdfPCell();
    descCell.setBorder(0);
    descCell.setColspan(2);
    descCell.setFixedHeight(15f);
    descTable.addCell(descCell);

    descCell = new PdfPCell();
    descCell.setBorder(0);
    descCell.setBorderWidthBottom(0.06f);
    p = new Paragraph(12f, "" + polValues.toUpperCase(), fontCompNormalSub);
    p.setAlignment(Element.ALIGN_CENTER);
    descCell.addElement(p);
    descTable.addCell(descCell);

    descCell = new PdfPCell();
    descCell.setBorder(0);
    descCell.setColspan(2);
    descTable.addCell(descCell);

    descCell = new PdfPCell();
    descCell.setBorder(0);
    descCell.setColspan(2);
    descTable.addCell(descCell);

    descCell = new PdfPCell();
    descCell.setBorder(0);
    if ("N".equalsIgnoreCase(portKey)) {
        p = new Paragraph(7f, "PORT", fontCompNormalSub);
    } else {
        p = new Paragraph(7f, "PORT" + " " + portKeyValue, fontCompNormalSub);
    }
    p.setAlignment(Element.ALIGN_CENTER);
    descCell.addElement(p);
    descTable.addCell(descCell);

    descCell = new PdfPCell();
    descCell.setBorder(0);
    descCell.setColspan(2);
    descTable.addCell(descCell);
    return descTable;
}