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

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

Introduction

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

Prototype

public void setBorder(final int border) 

Source Link

Document

Enables/Disables the border on the specified sides.

Usage

From source file:fll.web.playoff.ScoresheetGenerator.java

License:Open Source License

public void writeFile(final OutputStream out, final boolean orientationIsPortrait) throws DocumentException {

    // This creates our new PDF document and declares its orientation
    Document pdfDoc;//  www.  java2 s  .  c  o  m
    if (orientationIsPortrait) {
        pdfDoc = new Document(PageSize.LETTER); // portrait
    } else {
        pdfDoc = new Document(PageSize.LETTER.rotate()); // landscape
    }
    PdfWriter.getInstance(pdfDoc, out);

    // Measurements are always in points (72 per inch)
    // This sets up 1/2 inch margins side margins and 0.35in top and bottom
    // margins
    pdfDoc.setMargins(0.5f * POINTS_PER_INCH, 0.5f * POINTS_PER_INCH, 0.35f * POINTS_PER_INCH,
            0.35f * POINTS_PER_INCH);
    pdfDoc.open();

    // Header cell with challenge title to add to both scoresheets
    final Paragraph titleParagraph = new Paragraph();
    final Chunk titleChunk = new Chunk(m_pageTitle,
            FontFactory.getFont(FontFactory.HELVETICA_BOLD, 14, Font.NORMAL, BaseColor.WHITE));
    titleParagraph.setAlignment(Element.ALIGN_CENTER);
    titleParagraph.add(titleChunk);

    titleParagraph.add(Chunk.NEWLINE);
    final Chunk swVersionChunk = new Chunk("SW version: " + Version.getVersion(),
            FontFactory.getFont(FontFactory.HELVETICA, 8, Font.NORMAL, BaseColor.WHITE));
    titleParagraph.add(swVersionChunk);
    if (null != m_revision) {

        final Chunk revisionChunk = new Chunk(" Descriptor revision: " + m_revision,
                FontFactory.getFont(FontFactory.HELVETICA, 8, Font.NORMAL, BaseColor.WHITE));

        titleParagraph.add(revisionChunk);
    }

    final PdfPCell head = new PdfPCell();
    head.setColspan(2);
    head.setBorder(1);
    head.setPaddingTop(0);
    head.setPaddingBottom(3);
    head.setBackgroundColor(new BaseColor(64, 64, 64));
    head.setVerticalAlignment(Element.ALIGN_TOP);
    head.addElement(titleParagraph);

    // Cells for score field, and 2nd check initials
    final Phrase des = new Phrase("Data Entry Score _______", ARIAL_8PT_NORMAL);
    final PdfPCell desC = new PdfPCell(des);
    desC.setBorder(0);
    desC.setPaddingTop(9);
    desC.setPaddingRight(36);
    desC.setHorizontalAlignment(Element.ALIGN_RIGHT);
    final Phrase sci = new Phrase("2nd Check Initials _______", ARIAL_8PT_NORMAL);
    final PdfPCell sciC = new PdfPCell(sci);
    sciC.setBorder(0);
    sciC.setPaddingTop(9);
    sciC.setPaddingRight(36);
    sciC.setHorizontalAlignment(Element.ALIGN_RIGHT);

    // Create a table with a grid cell for each scoresheet on the page
    PdfPTable wholePage = getTableForPage(orientationIsPortrait);
    wholePage.setWidthPercentage(100);
    for (int i = 0; i < m_numSheets; i++) {
        if (i > 0 && (orientationIsPortrait || (i % 2) == 0)) {
            pdfDoc.newPage();
            wholePage = getTableForPage(orientationIsPortrait);
            wholePage.setWidthPercentage(100);
        }

        // This table is a single score sheet
        final PdfPTable scoreSheet = new PdfPTable(2);
        // scoreSheet.getDefaultCell().setBorder(Rectangle.LEFT | Rectangle.BOTTOM
        // | Rectangle.RIGHT | Rectangle.TOP); //FIXME DEBUG should be NO_BORDER
        scoreSheet.getDefaultCell().setBorder(Rectangle.NO_BORDER);
        scoreSheet.getDefaultCell().setPaddingRight(1);
        scoreSheet.getDefaultCell().setPaddingLeft(0);

        scoreSheet.addCell(head);

        final PdfPTable teamInfo = new PdfPTable(7);
        teamInfo.setWidthPercentage(100);
        teamInfo.setWidths(new float[] { 1f, 1f, 1f, 1f, 1f, 1f, .9f });

        // Time label cell
        final Paragraph timeP = new Paragraph("Time:", ARIAL_10PT_NORMAL);
        timeP.setAlignment(Element.ALIGN_RIGHT);
        final PdfPCell timeLc = new PdfPCell(scoreSheet.getDefaultCell());
        timeLc.addElement(timeP);
        teamInfo.addCell(timeLc);
        // Time value cell
        final Paragraph timeV = new Paragraph(null == m_time[i] ? SHORT_BLANK : m_time[i], COURIER_10PT_NORMAL);
        final PdfPCell timeVc = new PdfPCell(scoreSheet.getDefaultCell());
        timeVc.addElement(timeV);
        teamInfo.addCell(timeVc);

        // Table label cell
        final Paragraph tblP = new Paragraph("Table:", ARIAL_10PT_NORMAL);
        tblP.setAlignment(Element.ALIGN_RIGHT);
        final PdfPCell tblLc = new PdfPCell(scoreSheet.getDefaultCell());
        tblLc.addElement(tblP);
        teamInfo.addCell(tblLc);
        // Table value cell
        final Paragraph tblV = new Paragraph(m_table[i], COURIER_10PT_NORMAL);
        final PdfPCell tblVc = new PdfPCell(scoreSheet.getDefaultCell());
        tblVc.addElement(tblV);
        teamInfo.addCell(tblVc);

        // Round number label cell
        final Paragraph rndP = new Paragraph("Round:", ARIAL_10PT_NORMAL);
        rndP.setAlignment(Element.ALIGN_RIGHT);
        final PdfPCell rndlc = new PdfPCell(scoreSheet.getDefaultCell());
        rndlc.addElement(rndP);
        teamInfo.addCell(rndlc);
        // Round number value cell
        final Paragraph rndV = new Paragraph(m_round[i], COURIER_10PT_NORMAL);
        final PdfPCell rndVc = new PdfPCell(scoreSheet.getDefaultCell());
        // rndVc.setColspan(2);
        rndVc.addElement(rndV);
        teamInfo.addCell(rndVc);

        final PdfPCell temp1 = new PdfPCell(scoreSheet.getDefaultCell());
        // temp1.setColspan(2);
        temp1.addElement(new Paragraph("Judge ____", ARIAL_8PT_NORMAL));
        teamInfo.addCell(temp1);

        // Team number label cell
        final Paragraph nbrP = new Paragraph("Team #:", ARIAL_10PT_NORMAL);
        nbrP.setAlignment(Element.ALIGN_RIGHT);
        final PdfPCell nbrlc = new PdfPCell(scoreSheet.getDefaultCell());
        nbrlc.addElement(nbrP);
        teamInfo.addCell(nbrlc);
        // Team number value cell
        final Paragraph nbrV = new Paragraph(null == m_number[i] ? SHORT_BLANK : String.valueOf(m_number[i]),
                COURIER_10PT_NORMAL);
        final PdfPCell nbrVc = new PdfPCell(scoreSheet.getDefaultCell());
        nbrVc.addElement(nbrV);
        teamInfo.addCell(nbrVc);

        // Team division label cell
        final Paragraph divP = new Paragraph(m_divisionLabel[i], ARIAL_10PT_NORMAL);
        divP.setAlignment(Element.ALIGN_RIGHT);
        final PdfPCell divlc = new PdfPCell(scoreSheet.getDefaultCell());
        divlc.addElement(divP);
        divlc.setColspan(2);
        teamInfo.addCell(divlc);
        // Team division value cell
        final Paragraph divV = new Paragraph(m_division[i], COURIER_10PT_NORMAL);
        final PdfPCell divVc = new PdfPCell(scoreSheet.getDefaultCell());
        divVc.setColspan(2);
        divVc.addElement(divV);
        teamInfo.addCell(divVc);

        final PdfPCell temp2 = new PdfPCell(scoreSheet.getDefaultCell());
        // temp2.setColspan(2);
        temp2.addElement(new Paragraph("Team ____", ARIAL_8PT_NORMAL));
        teamInfo.addCell(temp2);

        // Team name label cell
        final Paragraph nameP = new Paragraph("Team Name:", ARIAL_10PT_NORMAL);
        nameP.setAlignment(Element.ALIGN_RIGHT);
        final PdfPCell namelc = new PdfPCell(scoreSheet.getDefaultCell());
        namelc.setColspan(2);
        namelc.addElement(nameP);
        teamInfo.addCell(namelc);
        // Team name value cell
        final Paragraph nameV = new Paragraph(m_name[i], COURIER_10PT_NORMAL);
        final PdfPCell nameVc = new PdfPCell(scoreSheet.getDefaultCell());
        nameVc.setColspan(5);
        nameVc.addElement(nameV);
        teamInfo.addCell(nameVc);

        // add team info cell to the team table
        final PdfPCell teamInfoCell = new PdfPCell(scoreSheet.getDefaultCell());
        teamInfoCell.addElement(teamInfo);
        teamInfoCell.setColspan(2);

        scoreSheet.addCell(teamInfoCell);

        if (null != m_goalsTable) {
            final PdfPCell goalCell = new PdfPCell(m_goalsTable);
            goalCell.setBorder(0);
            goalCell.setPadding(0);
            goalCell.setColspan(2);
            scoreSheet.addCell(goalCell);
        }

        scoreSheet.addCell(desC);
        scoreSheet.addCell(sciC);

        if (null != m_copyright) {
            final Phrase copyright = new Phrase("\u00A9" + m_copyright, f6i);
            final PdfPCell copyrightC = new PdfPCell(scoreSheet.getDefaultCell());
            copyrightC.addElement(copyright);
            copyrightC.setBorder(0);
            copyrightC.setHorizontalAlignment(Element.ALIGN_CENTER);
            copyrightC.setColspan(2);

            scoreSheet.addCell(copyrightC);
        }

        // the cell in the whole page table that will contain the single score
        // sheet
        final PdfPCell scoresheetCell = new PdfPCell(scoreSheet);
        scoresheetCell.setBorder(0);
        scoresheetCell.setPadding(0);

        // Interior borders between scoresheets on a page
        if (!orientationIsPortrait) {
            if (i % 2 == 0) {
                scoresheetCell.setPaddingRight(0.1f * POINTS_PER_INCH);
            } else {
                scoresheetCell.setPaddingLeft(0.1f * POINTS_PER_INCH);
            }
        }

        // Add the current scoresheet to the page
        wholePage.addCell(scoresheetCell);

        // Add the current table of scoresheets to the document
        if (orientationIsPortrait || (i % 2 != 0)) {
            pdfDoc.add(wholePage);
        }
    }

    // Add a blank cells to complete the table of the last page
    if (!orientationIsPortrait && m_numSheets % 2 != 0) {
        final PdfPCell blank = new PdfPCell();
        blank.setBorder(0);
        wholePage.addCell(blank);
        pdfDoc.add(wholePage);
    }

    pdfDoc.close();
}

From source file:fll.web.playoff.ScoresheetGenerator.java

License:Open Source License

/**
 * Stores the goal cells that are inserted into the output after the team name
 * headers and before the scoring/initials blanks at the bottom of the
 * scoresheet.//www  .java 2 s.  co m
 */
private void setChallengeInfo(final ChallengeDescription description) {
    setPageTitle(description.getTitle());

    if (null != description.getRevision()) {
        setRevisionInfo(description.getRevision());
    }

    if (null != description.getCopyright()) {
        m_copyright = description.getCopyright();
    } else {
        m_copyright = null;
    }

    final PerformanceScoreCategory performanceElement = description.getPerformance();
    // use ArrayList as we will be doing indexed access in the loop
    final List<AbstractGoal> goals = new ArrayList<>(performanceElement.getGoals());

    final float[] relativeWidths = new float[3];
    relativeWidths[0] = 4;
    relativeWidths[1] = 48;
    relativeWidths[2] = 48;
    m_goalsTable = new PdfPTable(relativeWidths);

    String prevCategory = null;
    for (int goalIndex = 0; goalIndex < goals.size(); ++goalIndex) {
        final AbstractGoal goal = goals.get(goalIndex);
        if (!goal.isComputed()) {
            final String category = goal.getCategory();

            // add category cell if needed
            boolean firstRowInCategory = false;
            if (!StringUtils.equals(prevCategory, category)) {
                if (!StringUtils.isEmpty(category)) {

                    // find out how many future goals have the same category
                    int categoryRowSpan = 1;
                    for (int otherIndex = goalIndex + 1; otherIndex < goals.size(); ++otherIndex) {
                        final AbstractGoal otherGoal = goals.get(otherIndex);
                        if (!otherGoal.isComputed()) {
                            if (StringUtils.equals(category, otherGoal.getCategory())) {
                                ++categoryRowSpan;
                            } else {
                                break;
                            }
                        }
                    }

                    final Paragraph catPara = new Paragraph(category, ARIAL_10PT_NORMAL);
                    final PdfPCell categoryCell = new PdfPCell(catPara);
                    categoryCell.setBorderWidthTop(1);
                    categoryCell.setBorderWidthBottom(0);
                    categoryCell.setBorderWidthLeft(0);
                    categoryCell.setBorderWidthRight(0);
                    categoryCell.setVerticalAlignment(Element.ALIGN_CENTER);
                    categoryCell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    categoryCell.setRotation(90);
                    categoryCell.setRowspan(categoryRowSpan);
                    m_goalsTable.addCell(categoryCell);
                }

                // first row in a new category, which may be empty
                firstRowInCategory = true;
            }

            // This is the text for the left hand "label" cell
            final String title = goal.getTitle();
            final Paragraph p = new Paragraph(title, ARIAL_10PT_NORMAL);
            final PdfPCell goalLabel = new PdfPCell(p);
            goalLabel.setHorizontalAlignment(Element.ALIGN_RIGHT);
            goalLabel.setVerticalAlignment(Element.ALIGN_CENTER);
            if (firstRowInCategory) {
                goalLabel.setBorderWidthTop(1);
                goalLabel.setBorderWidthBottom(0);
                goalLabel.setBorderWidthLeft(0);
                goalLabel.setBorderWidthRight(0);
            } else {
                goalLabel.setBorder(0);
            }
            goalLabel.setPaddingRight(9);
            goalLabel.setVerticalAlignment(Element.ALIGN_TOP);
            if (StringUtils.isEmpty(category)) {
                // category column and goal label column
                goalLabel.setColspan(2);
            }
            m_goalsTable.addCell(goalLabel);

            // define the value cell
            final double min = goal.getMin();
            final String minStr = FP.equals(min, Math.round(min), 1E-6) ? String.valueOf((int) min)
                    : String.valueOf(min);
            final double max = goal.getMax();
            final String maxStr = FP.equals(max, Math.round(max), 1E-6) ? String.valueOf((int) max)
                    : String.valueOf(max);

            // If element has child nodes, then we have an enumerated list
            // of choices. Otherwise it is either yes/no or a numeric field.
            final PdfPCell goalValue = new PdfPCell();
            final Chunk choices = new Chunk("", COURIER_10PT_NORMAL);
            if (goal.isEnumerated()) {
                // replace spaces with "no-break" spaces
                boolean first = true;
                final List<EnumeratedValue> values = goal.getSortedValues();
                for (final EnumeratedValue value : values) {
                    if (!first) {
                        choices.append(" /" + Utilities.NON_BREAKING_SPACE);
                    } else {
                        first = false;
                    }
                    choices.append(value.getTitle().toUpperCase().replace(' ', Utilities.NON_BREAKING_SPACE));
                }
                goalValue.addElement(choices);

            } else {
                if (goal.isYesNo()) {
                    // order of yes/no needs to match ScoreEntry.generateYesNoButtons
                    final Paragraph q = new Paragraph("NO / YES", COURIER_10PT_NORMAL);
                    goalValue.addElement(q);

                } else {
                    final String range = "(" + minStr + " - " + maxStr + ")";
                    final PdfPTable t = new PdfPTable(2);
                    t.setHorizontalAlignment(Element.ALIGN_LEFT);
                    t.setTotalWidth(1 * POINTS_PER_INCH);
                    t.setLockedWidth(true);
                    final Phrase r = new Phrase("", ARIAL_8PT_NORMAL);
                    t.addCell(new PdfPCell(r));
                    final Phrase q = new Phrase(range, ARIAL_8PT_NORMAL);
                    t.addCell(new PdfPCell(q));
                    goalValue.setPaddingTop(9);
                    goalValue.addElement(t);
                }
            }

            if (firstRowInCategory) {
                goalValue.setBorderWidthTop(1);
                goalValue.setBorderWidthBottom(0);
                goalValue.setBorderWidthLeft(0);
                goalValue.setBorderWidthRight(0);
            } else {
                goalValue.setBorder(0);
            }
            goalValue.setVerticalAlignment(Element.ALIGN_MIDDLE);

            m_goalsTable.addCell(goalValue);

            // setup for next loop
            prevCategory = category;
        } // if not computed goal

    } // foreach goal

}

From source file:fll.web.report.FinalComputedScores.java

License:Open Source License

@SuppressFBWarnings(value = {
        "SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING" }, justification = "Category name determines table name")
private void writeScores(final Connection connection, final ScoreCategory[] subjectiveCategories,
        final double[] weights, final float[] relativeWidths, final String awardGroup,
        final WinnerType winnerCriteria, final Tournament tournament, final PdfPTable divTable,
        final Set<Integer> bestTeams) throws SQLException {

    final Map<ScoreCategory, Map<String, Map<Integer, Integer>>> teamSubjectiveRanks = gatherRankedSubjectiveTeams(
            connection, subjectiveCategories, winnerCriteria, tournament, awardGroup);

    final Map<Integer, Integer> teamPerformanceRanks = gatherRankedPerformanceTeams(connection, winnerCriteria,
            tournament, awardGroup);//w w w  .  ja  v a  2  s  . c  om

    ResultSet rawScoreRS = null;
    PreparedStatement teamPrep = null;
    ResultSet teamsRS = null;
    PreparedStatement scorePrep = null;
    try {
        final StringBuilder query = new StringBuilder();
        query.append(
                "SELECT Teams.Organization,Teams.TeamName,Teams.TeamNumber,FinalScores.OverallScore,FinalScores.performance,current_tournament_teams.judging_station");
        for (int cat = 0; cat < subjectiveCategories.length; cat++) {
            if (weights[cat] > 0.0) {
                final String catName = subjectiveCategories[cat].getName();
                query.append(",FinalScores." + catName);
            }
        }
        query.append(" FROM Teams,FinalScores,current_tournament_teams");
        query.append(" WHERE FinalScores.TeamNumber = Teams.TeamNumber");
        query.append(" AND FinalScores.Tournament = ?");
        query.append(" AND current_tournament_teams.event_division = ?");
        query.append(" AND current_tournament_teams.TeamNumber = Teams.TeamNumber");
        query.append(
                " ORDER BY FinalScores.OverallScore " + winnerCriteria.getSortString() + ", Teams.TeamNumber");
        teamPrep = connection.prepareStatement(query.toString());
        teamPrep.setInt(1, tournament.getTournamentID());
        teamPrep.setString(2, awardGroup);
        teamsRS = teamPrep.executeQuery();

        scorePrep = connection
                .prepareStatement("SELECT score FROM performance_seeding_max" + " WHERE TeamNumber = ?");

        while (teamsRS.next()) {
            final int teamNumber = teamsRS.getInt(3);
            final String organization = teamsRS.getString(1);
            final String teamName = teamsRS.getString(2);
            final String judgingGroup = teamsRS.getString(6);

            final double totalScore;
            final double ts = teamsRS.getDouble(4);
            if (teamsRS.wasNull()) {
                totalScore = Double.NaN;
            } else {
                totalScore = ts;
            }

            // ///////////////////////////////////////////////////////////////////
            // Build a table of data for this team
            // ///////////////////////////////////////////////////////////////////
            final PdfPTable curteam = new PdfPTable(relativeWidths);
            curteam.getDefaultCell().setBorder(0);

            // The first row of the team table...
            // First column is organization name
            final PdfPCell teamCol = new PdfPCell(new Phrase(organization, ARIAL_8PT_NORMAL));
            teamCol.setBorder(0);
            teamCol.setHorizontalAlignment(com.itextpdf.text.Element.ALIGN_LEFT);
            curteam.addCell(teamCol);
            curteam.getDefaultCell().setHorizontalAlignment(com.itextpdf.text.Element.ALIGN_RIGHT);

            final PdfPCell judgeGroupCell = new PdfPCell(new Phrase(judgingGroup, ARIAL_8PT_NORMAL));
            judgeGroupCell.setHorizontalAlignment(com.itextpdf.text.Element.ALIGN_CENTER);
            judgeGroupCell.setBorder(0);
            curteam.addCell(judgeGroupCell);

            // Second column is "Raw:"
            final PdfPCell rawLabel = new PdfPCell(new Phrase("Raw:", ARIAL_8PT_NORMAL));
            rawLabel.setHorizontalAlignment(com.itextpdf.text.Element.ALIGN_RIGHT);
            rawLabel.setBorder(0);
            curteam.addCell(rawLabel);

            insertRawScoreColumns(connection, tournament, winnerCriteria.getSortString(), subjectiveCategories,
                    weights, teamNumber, curteam);

            // Column for the highest performance score of the seeding rounds
            scorePrep.setInt(1, teamNumber);
            rawScoreRS = scorePrep.executeQuery();
            final double rawScore;
            if (rawScoreRS.next()) {
                final double v = rawScoreRS.getDouble(1);
                if (rawScoreRS.wasNull()) {
                    rawScore = Double.NaN;
                } else {
                    rawScore = v;
                }
            } else {
                rawScore = Double.NaN;
            }
            PdfPCell pCell = new PdfPCell((Double.isNaN(rawScore) ? new Phrase("No Score", ARIAL_8PT_NORMAL_RED)
                    : new Phrase(Utilities.NUMBER_FORMAT_INSTANCE.format(rawScore), ARIAL_8PT_NORMAL)));
            pCell.setHorizontalAlignment(com.itextpdf.text.Element.ALIGN_CENTER);
            pCell.setBorder(0);
            curteam.addCell(pCell);
            rawScoreRS.close();

            // The "Overall score" column is not filled in for raw scores
            curteam.addCell("");

            // The second row of the team table...
            // First column contains the team # and name
            final PdfPCell teamNameCol = new PdfPCell(
                    new Phrase(Integer.toString(teamNumber) + " " + teamName, ARIAL_8PT_NORMAL));
            teamNameCol.setBorder(0);
            teamNameCol.setHorizontalAlignment(com.itextpdf.text.Element.ALIGN_LEFT);
            curteam.addCell(teamNameCol);

            // Second column contains "Scaled:"
            final PdfPCell scaledCell = new PdfPCell(new Phrase("Scaled:", ARIAL_8PT_NORMAL));
            scaledCell.setHorizontalAlignment(com.itextpdf.text.Element.ALIGN_RIGHT);
            scaledCell.setBorder(0);
            scaledCell.setColspan(2);
            curteam.addCell(scaledCell);

            // Next, one column containing the scaled score for each subjective
            // category with weight > 0
            for (int cat = 0; cat < subjectiveCategories.length; cat++) {
                final Map<String, Map<Integer, Integer>> catRanks = teamSubjectiveRanks
                        .get(subjectiveCategories[cat]);

                final double catWeight = weights[cat];
                if (catWeight > 0.0) {
                    final double scaledScore;
                    final double v = teamsRS.getDouble(6 + cat + 1);
                    if (teamsRS.wasNull()) {
                        scaledScore = Double.NaN;
                    } else {
                        scaledScore = v;
                    }

                    final Map<Integer, Integer> judgingRanks = catRanks.get(judgingGroup);

                    Font scoreFont;
                    final String rankText;
                    if (judgingRanks.containsKey(teamNumber)) {
                        final int rank = judgingRanks.get(teamNumber);
                        rankText = String.format("%1$s(%2$d)", Utilities.NON_BREAKING_SPACE, rank);
                        if (1 == rank) {
                            scoreFont = ARIAL_8PT_BOLD;
                        } else {
                            scoreFont = ARIAL_8PT_NORMAL;
                        }
                    } else {
                        rankText = String.format("%1$s%1$s%1$s%1$s%1$s", Utilities.NON_BREAKING_SPACE);
                        scoreFont = ARIAL_8PT_NORMAL;
                    }

                    final String scoreText;
                    if (Double.isNaN(scaledScore)) {
                        scoreText = "No Score" + rankText;
                        scoreFont = ARIAL_8PT_NORMAL_RED;
                    } else {
                        scoreText = Utilities.NUMBER_FORMAT_INSTANCE.format(scaledScore) + rankText;
                    }

                    final PdfPCell subjCell = new PdfPCell(new Phrase(scoreText, scoreFont));
                    subjCell.setHorizontalAlignment(com.itextpdf.text.Element.ALIGN_CENTER);
                    subjCell.setBorder(0);
                    curteam.addCell(subjCell);
                }
            } // foreach category

            // 2nd to last column has the scaled performance score
            {
                Font scoreFont;
                final String rankText;
                if (teamPerformanceRanks.containsKey(teamNumber)) {
                    final int rank = teamPerformanceRanks.get(teamNumber);
                    rankText = String.format("%1$s(%2$d)", Utilities.NON_BREAKING_SPACE, rank);
                    if (1 == rank) {
                        scoreFont = ARIAL_8PT_BOLD;
                    } else {
                        scoreFont = ARIAL_8PT_NORMAL;
                    }
                } else {
                    rankText = String.format("%1$s%1$s%1$s%1$s%1$s", Utilities.NON_BREAKING_SPACE);
                    scoreFont = ARIAL_8PT_NORMAL;
                }

                final double scaledScore;
                final double v = teamsRS.getDouble(5);
                if (teamsRS.wasNull()) {
                    scaledScore = Double.NaN;
                } else {
                    scaledScore = v;
                }

                final String scaledScoreStr;
                if (Double.isNaN(scaledScore)) {
                    scoreFont = ARIAL_8PT_NORMAL_RED;
                    scaledScoreStr = "No Score" + rankText;
                } else {
                    scaledScoreStr = Utilities.NUMBER_FORMAT_INSTANCE.format(scaledScore) + rankText;
                }

                pCell = new PdfPCell(new Phrase(scaledScoreStr, scoreFont));
                pCell.setHorizontalAlignment(com.itextpdf.text.Element.ALIGN_CENTER);
                pCell.setBorder(0);
                curteam.addCell(pCell);
            } // performance score

            // Last column contains the overall scaled score
            final String overallScoreSuffix;
            if (bestTeams.contains(teamNumber)) {
                overallScoreSuffix = String.format("%1$s*", Utilities.NON_BREAKING_SPACE);
            } else {
                overallScoreSuffix = String.format("%1$s%1$s", Utilities.NON_BREAKING_SPACE);
            }

            pCell = new PdfPCell((Double.isNaN(totalScore)
                    ? new Phrase("No Score" + overallScoreSuffix, ARIAL_8PT_NORMAL_RED)
                    : new Phrase(Utilities.NUMBER_FORMAT_INSTANCE.format(totalScore) + overallScoreSuffix,
                            ARIAL_8PT_NORMAL)));
            pCell.setHorizontalAlignment(com.itextpdf.text.Element.ALIGN_CENTER);
            pCell.setBorder(0);
            curteam.addCell(pCell);

            // This is an empty row in the team table that is added to put a
            // horizontal rule under the team's score in the display
            final PdfPCell blankCell = new PdfPCell();
            blankCell.setBorder(0);
            blankCell.setBorderWidthBottom(0.5f);
            blankCell.setBorderColorBottom(BaseColor.GRAY);
            blankCell.setColspan(relativeWidths.length);
            curteam.addCell(blankCell);

            // Create a new cell and add it to the division table - this cell will
            // contain the entire team table we just built above
            final PdfPCell curteamCell = new PdfPCell(curteam);
            curteamCell.setBorder(0);
            curteamCell.setColspan(relativeWidths.length);
            divTable.addCell(curteamCell);
        }

        teamsRS.close();

    } finally {
        SQLFunctions.close(teamsRS);
        SQLFunctions.close(teamPrep);
        SQLFunctions.close(rawScoreRS);
        SQLFunctions.close(scorePrep);
    }

}

From source file:fll.web.report.FinalComputedScores.java

License:Open Source License

/**
 * @throws ParseException/*from   w ww .ja va  2 s .co m*/
 */
private void writeColumnHeaders(final TournamentSchedule schedule, final double[] weights,
        final ScoreCategory[] subjectiveCategories, final float[] relativeWidths,
        final ChallengeDescription challengeDescription, final PdfPTable divTable) throws ParseException {

    // /////////////////////////////////////////////////////////////////////
    // Write the table column headers
    // /////////////////////////////////////////////////////////////////////
    // team information
    final PdfPCell organizationCell = new PdfPCell(new Phrase("Organization", ARIAL_8PT_BOLD));
    organizationCell.setBorder(0);
    organizationCell.setVerticalAlignment(com.itextpdf.text.Element.ALIGN_MIDDLE);
    divTable.addCell(organizationCell);

    // judging group
    if (null != schedule) {
        final Paragraph judgingGroup = new Paragraph("Judging", ARIAL_8PT_BOLD);
        judgingGroup.add(Chunk.NEWLINE);
        judgingGroup.add(new Chunk("Group"));
        final PdfPCell osCell = new PdfPCell(judgingGroup);
        osCell.setBorder(0);
        osCell.setHorizontalAlignment(com.itextpdf.text.Element.ALIGN_CENTER);
        osCell.setVerticalAlignment(com.itextpdf.text.Element.ALIGN_MIDDLE);
        divTable.addCell(osCell);
    }

    divTable.addCell(""); // weight/raw&scaled

    for (int cat = 0; cat < subjectiveCategories.length; cat++) {
        if (weights[cat] > 0.0) {
            final String catTitle = subjectiveCategories[cat].getTitle();

            final Paragraph catPar = new Paragraph(catTitle, ARIAL_8PT_BOLD);
            final PdfPCell catCell = new PdfPCell(catPar);
            catCell.setBorder(0);
            catCell.setHorizontalAlignment(com.itextpdf.text.Element.ALIGN_CENTER);
            catCell.setVerticalAlignment(com.itextpdf.text.Element.ALIGN_MIDDLE);
            divTable.addCell(catCell);
        }
    }

    final Paragraph perfPar = new Paragraph("Performance", ARIAL_8PT_BOLD);
    final PdfPCell perfCell = new PdfPCell(perfPar);
    perfCell.setBorder(0);
    perfCell.setHorizontalAlignment(com.itextpdf.text.Element.ALIGN_CENTER);
    perfCell.setVerticalAlignment(com.itextpdf.text.Element.ALIGN_MIDDLE);
    divTable.addCell(perfCell);

    final Paragraph overallScore = new Paragraph("Overall", ARIAL_8PT_BOLD);
    overallScore.add(Chunk.NEWLINE);
    overallScore.add(new Chunk("Score"));
    final PdfPCell osCell = new PdfPCell(overallScore);
    osCell.setBorder(0);
    osCell.setHorizontalAlignment(com.itextpdf.text.Element.ALIGN_CENTER);
    osCell.setVerticalAlignment(com.itextpdf.text.Element.ALIGN_MIDDLE);
    divTable.addCell(osCell);

    // /////////////////////////////////////////////////////////////////////
    // Write a table row with the relative weights of the subjective scores
    // /////////////////////////////////////////////////////////////////////

    final PdfPCell teamCell = new PdfPCell(new Phrase("Team # / Team Name", ARIAL_8PT_BOLD));
    teamCell.setBorder(0);
    teamCell.setVerticalAlignment(com.itextpdf.text.Element.ALIGN_MIDDLE);
    divTable.addCell(teamCell);

    final Paragraph wPar = new Paragraph("Weight:", ARIAL_8PT_NORMAL);
    final PdfPCell wCell = new PdfPCell(wPar);
    if (null != schedule) {
        wCell.setColspan(2);
    }
    wCell.setBorder(0);
    wCell.setHorizontalAlignment(com.itextpdf.text.Element.ALIGN_RIGHT);
    divTable.addCell(wCell);

    final PdfPCell[] wCells = new PdfPCell[subjectiveCategories.length];
    final Paragraph[] wPars = new Paragraph[subjectiveCategories.length];
    for (int cat = 0; cat < subjectiveCategories.length; cat++) {
        if (weights[cat] > 0.0) {
            wPars[cat] = new Paragraph(Double.toString(weights[cat]), ARIAL_8PT_NORMAL);
            wCells[cat] = new PdfPCell(wPars[cat]);
            wCells[cat].setBorder(0);
            wCells[cat].setHorizontalAlignment(com.itextpdf.text.Element.ALIGN_CENTER);
            divTable.addCell(wCells[cat]);
        }
    }

    final PerformanceScoreCategory performanceElement = challengeDescription.getPerformance();
    final double perfWeight = performanceElement.getWeight();
    final Paragraph perfWeightPar = new Paragraph(Double.toString(perfWeight), ARIAL_8PT_NORMAL);
    final PdfPCell perfWeightCell = new PdfPCell(perfWeightPar);
    perfWeightCell.setHorizontalAlignment(com.itextpdf.text.Element.ALIGN_CENTER);
    perfWeightCell.setBorder(0);
    divTable.addCell(perfWeightCell);

    divTable.addCell("");

    PdfPCell blankCell = new PdfPCell();
    blankCell.setBorder(0);
    blankCell.setBorderWidthBottom(1.0f);
    blankCell.setColspan(relativeWidths.length);
    divTable.addCell(blankCell);

    // Cause the first 4 rows to be repeated on
    // each page - 1 row for box header, 2 rows text headers and 1 for
    // the horizontal line.
    divTable.setHeaderRows(4);
}

From source file:fll.web.report.FinalComputedScores.java

License:Open Source License

@SuppressFBWarnings(value = {
        "SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING" }, justification = "Winner type is used to determine sort order")
private void insertRawScoreColumns(final Connection connection, final Tournament tournament,
        final String ascDesc, final ScoreCategory[] subjectiveCategories, final double[] weights,
        final int teamNumber, final PdfPTable curteam) throws SQLException {
    ResultSet rs = null;//from  w ww . j a va2 s .  c o m
    PreparedStatement prep = null;
    try {
        // Next, one column containing the raw score for each subjective
        // category with weight > 0
        for (int catIndex = 0; catIndex < subjectiveCategories.length; catIndex++) {
            final ScoreCategory catElement = subjectiveCategories[catIndex];
            final double catWeight = weights[catIndex];
            if (catWeight > 0.0) {
                final String catName = catElement.getName();
                prep = connection.prepareStatement("SELECT ComputedTotal" + " FROM " + catName
                        + " WHERE TeamNumber = ? AND Tournament = ? ORDER BY ComputedTotal " + ascDesc);
                prep.setInt(1, teamNumber);
                prep.setInt(2, tournament.getTournamentID());
                rs = prep.executeQuery();
                boolean scoreSeen = false;
                final StringBuilder rawScoreText = new StringBuilder();
                while (rs.next()) {
                    final double v = rs.getDouble(1);
                    if (!rs.wasNull()) {
                        if (scoreSeen) {
                            rawScoreText.append(", ");
                        } else {
                            scoreSeen = true;
                        }
                        rawScoreText.append(Utilities.NUMBER_FORMAT_INSTANCE.format(v));
                    }
                }
                final PdfPCell subjCell = new PdfPCell(
                        (!scoreSeen ? new Phrase("No Score", ARIAL_8PT_NORMAL_RED)
                                : new Phrase(rawScoreText.toString(), ARIAL_8PT_NORMAL)));
                subjCell.setHorizontalAlignment(com.itextpdf.text.Element.ALIGN_CENTER);
                subjCell.setBorder(0);
                curteam.addCell(subjCell);
                rs.close();
            }
        }
    } finally {
        SQLFunctions.close(rs);
        SQLFunctions.close(prep);
    }
}

From source file:fll.web.report.ReportPageEventHandler.java

License:Open Source License

@Override
// initialization of the header table
public void onEndPage(final PdfWriter writer, final Document document) {
    final PdfPTable header = new PdfPTable(2);
    final Phrase p = new Phrase();
    final Chunk ck = new Chunk(_challengeTitle + "\n" + _reportTitle, _font);
    p.add(ck);/* w  w w.  j av  a  2  s. c o  m*/
    header.getDefaultCell().setBorderWidth(0);
    header.addCell(p);
    header.getDefaultCell().setHorizontalAlignment(com.itextpdf.text.Element.ALIGN_RIGHT);
    header.addCell(new Phrase(new Chunk("Tournament: " + _tournament + "\nDate: " + _formattedDate, _font)));
    final PdfPCell blankCell = new PdfPCell();
    blankCell.setBorder(0);
    blankCell.setBorderWidthTop(1.0f);
    blankCell.setColspan(2);
    header.addCell(blankCell);

    final PdfContentByte cb = writer.getDirectContent();
    cb.saveState();
    header.setTotalWidth(document.right() - document.left());
    header.writeSelectedRows(0, -1, document.left(), document.getPageSize().getHeight() - 10, cb);
    cb.restoreState();
}

From source file:fr.ensicaen.yousign.GenerePDF.java

public void genere() {
    try {//from w w  w  .j  a  v  a  2s.co m
        OutputStream file = new FileOutputStream(util.generePDFFilenameToUse());

        Document document = new Document();
        PdfWriter.getInstance(document, file);
        document.open();
        //
        // Affichage du logo, de la date et l'heure et avec ou sans frais
        //
        document.add(addEntete());
        //
        // Caractristiques du missionnaire (table: nom, prenom, courriel = 1re colonne, adresse = 2me colonne
        //
        PdfPTable tableIdentite = new PdfPTable(2);
        tableIdentite.setWidthPercentage(100);

        PdfPCell nomCell = new PdfPCell(
                new Phrase(new Chunk("Nom: " + util.getOrdreMission().getNomMissionnaire() + "\n" + "Prenom: "
                        + util.getOrdreMission().getPrenomMissionnaire() + "\n\n" + "Courriel: "
                        + util.getOrdreMission().getEmailMissionnaire(), fontItemSection)));
        nomCell.setBorder(Rectangle.NO_BORDER);
        tableIdentite.addCell(nomCell);

        Chunk adresseChunk = new Chunk("Adresse: " + "\n" + util.getOrdreMission().getRueMissionnaire() + "\n"
                + util.getOrdreMission().getCodepostalMissionnaire() + " "
                + util.getOrdreMission().getVilleMissionnaire() + "\n"
                + util.getOrdreMission().getPaysMissionnaire(), fontItemSection);
        PdfPCell adresseCell = new PdfPCell(new Phrase(adresseChunk));
        adresseCell.setBorder(Rectangle.NO_BORDER);
        tableIdentite.addCell(adresseCell);

        Paragraph identite;
        identite = new Paragraph();
        addEmptyLine(identite, 1);
        identite.add(tableIdentite);
        document.add(identite);
        //
        // Numero IBAN
        //
        Paragraph iban = new Paragraph();
        addEmptyLine(iban, 1);
        iban.add(new Chunk("Numro IBAN: " + util.getOrdreMission().getIban1() + " "
                + util.getOrdreMission().getIban2() + " " + util.getOrdreMission().getIban3() + " "
                + util.getOrdreMission().getIban4() + " " + util.getOrdreMission().getIban5() + " "
                + util.getOrdreMission().getIban6() + " " + util.getOrdreMission().getIban7(),
                fontItemSection));
        document.add(iban);
        //
        // Motif de la mission
        //
        Paragraph mission = new Paragraph();
        addEmptyLine(mission, 1);
        mission.add(
                new Chunk("Motif de la mission: " + util.getOrdreMission().getMotifMission(), fontItemSection));
        addEmptyLine(mission, 1);
        //
        // Dtails de la mission (lieu, dates, ...)
        //
        PdfPTable tableMission = new PdfPTable(7);
        tableMission.setWidthPercentage(100);
        float[] columnWidths = { 1f, 2f, 1.5f, 1f, 2f, 1.5f, 1f };
        tableMission.setWidths(columnWidths);
        PdfPCell cell;
        //
        // Ligne d'entete du tableau des dtails de la mission
        //
        tableMission.addCell("");
        cell = new PdfPCell(new Phrase("Lieu de dpart"));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        tableMission.addCell(cell);
        cell = new PdfPCell(new Phrase("Date"));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        tableMission.addCell(cell);
        cell = new PdfPCell(new Phrase("Heure"));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        tableMission.addCell(cell);
        cell = new PdfPCell(new Phrase("Lieu d'arrive"));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        tableMission.addCell(cell);
        cell = new PdfPCell(new Phrase("Date"));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        tableMission.addCell(cell);
        cell = new PdfPCell(new Phrase("Heure"));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        tableMission.addCell(cell);
        //
        // description du voyage aller
        //
        tableMission.addCell("Aller");
        cell = new PdfPCell(new Phrase(util.getOrdreMission().getLieuDepartAller()));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        tableMission.addCell(cell);
        cell = new PdfPCell(new Phrase(util.getOrdreMission().getDateDepartAller()));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        tableMission.addCell(cell);
        cell = new PdfPCell(new Phrase(util.getOrdreMission().getHeureDepartAller() + ":"
                + util.getOrdreMission().getMinuteDepartAller()));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        tableMission.addCell(cell);
        cell = new PdfPCell(new Phrase(util.getOrdreMission().getLieuArriveeAller()));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        tableMission.addCell(cell);
        cell = new PdfPCell(new Phrase(util.getOrdreMission().getDateArriveeAller()));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        tableMission.addCell(cell);
        cell = new PdfPCell(new Phrase(util.getOrdreMission().getHeureArriveeAller() + ":"
                + util.getOrdreMission().getMinuteArriveeAller()));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        tableMission.addCell(cell);

        //
        // Description du voyage retour
        //                
        tableMission.addCell("Retour");
        cell = new PdfPCell(new Phrase(util.getOrdreMission().getLieuDepartRetour()));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        tableMission.addCell(cell);
        cell = new PdfPCell(new Phrase(util.getOrdreMission().getDateDepartRetour()));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        tableMission.addCell(cell);
        cell = new PdfPCell(new Phrase(util.getOrdreMission().getHeureDepartRetour() + ":"
                + util.getOrdreMission().getMinuteDepartRetour()));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        tableMission.addCell(cell);
        cell = new PdfPCell(new Phrase(util.getOrdreMission().getLieuArriveeRetour()));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        tableMission.addCell(cell);
        cell = new PdfPCell(new Phrase(util.getOrdreMission().getDateArriveeRetour()));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        tableMission.addCell(cell);
        cell = new PdfPCell(new Phrase(util.getOrdreMission().getHeureArriveeRetour() + ":"
                + util.getOrdreMission().getMinuteArriveeRetour()));
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        tableMission.addCell(cell);

        mission.add(tableMission);
        document.add(mission);
        //
        // Moyens de transport
        //
        Paragraph moyensTransport = new Paragraph();
        addEmptyLine(moyensTransport, 1);
        moyensTransport.add(new Chunk("Moyens de transport utiliss\n", fontTitleSection));
        if (util.use("Passager")) {
            moyensTransport.add(new Chunk("Pas de frais de transport comme passager de la voiture de: "
                    + util.getOrdreMission().getNomConducteur() + "\n", fontItemSection));
        }
        if (util.use("Train")) {
            moyensTransport.add(new Chunk("Train:   Classe: " + util.getOrdreMission().getTrainClasse()
                    + "   Prix des billets: " + util.getOrdreMission().getTrainPrixBillet()
                    + "    Bon de commande: " + util.getOrdreMission().getTrainBonCommande()
                    + "   Carte affaire: " + util.getOrdreMission().getTrainCarteAffaire() + "\n",
                    fontItemSection));
        }
        if (util.use("Avion_Bateau")) {
            moyensTransport.add(new Chunk(
                    "Avion ou Bateau:   Classe: " + util.getOrdreMission().getAvionBateauClasse()
                            + "   Prix des billets: " + util.getOrdreMission().getAvionBateauPrixBillet()
                            + "   Bon de commande: " + util.getOrdreMission().getAvionBateauBonCommande()
                            + "   Carte affaire: " + util.getOrdreMission().getAvionBateauCarteAffaire() + "\n",
                    fontItemSection));
        }
        if (util.use("Vehicule_Service")) {
            moyensTransport.add(new Chunk(
                    "Voiture de service: " + util.getOrdreMission().getVehiculeService()
                            + "  Nombre de kilomtres: "
                            + util.getOrdreMission().getVehiculeServiceNombreKilometres() + "\n",
                    fontItemSection));
            moyensTransport.add(new Chunk(
                    "Nom des passagers: " + util.getOrdreMission().getVehiculeServiceNomPassagers() + "\n",
                    fontItemSection));
        }
        if (util.use("Vehicule_Personnel")) {
            moyensTransport.add(new Chunk(
                    "En vertu du dcret No 2006-781 du 3 juillet 2006: je soussign, "
                            + util.getOrdreMission().getPrenomMissionnaire() + " "
                            + util.getOrdreMission().getNomMissionnaire() + ", sollicite l'autorisation ",
                    fontItemSection));
            moyensTransport.add(new Chunk("d'utiliser mon vhicule de marque "
                    + util.getOrdreMission().getVehiculePersonnelMarque() + ", de puissance "
                    + util.getOrdreMission().getVehiculePersonnelPuissance() + ", d'immatriculation: "
                    + util.getOrdreMission().getVehiculePersonnelImmatriculation(), fontItemSection));
            moyensTransport.add(new Chunk(
                    ", de date d'acquisition " + util.getOrdreMission().getVehiculePersonnelDateAcquisition()
                            + " pour me rendre  " + util.getOrdreMission().getLieuArriveeAller(),
                    fontItemSection));
            moyensTransport.add(new Chunk(" et dclare avoir souscrit auprs de "
                    + util.getOrdreMission().getVehiculePersonnelNomAssureur()
                    + " une police d'assurance garantissant de manire illimite ma responsabilit personnelle aux termes ",
                    fontItemSection));
            moyensTransport.add(new Chunk(
                    "des articles 1382, 1383, 1384 du Code Civil, ainsi qu'ventuellement la responsabilit de l'Etat, y compris le cas o celle-ci est engage vis--vis des personnes transportes. ",
                    fontItemSection));
            moyensTransport
                    .add(new Chunk("Cette police comprend l'assurance contentieuse.\n", fontItemSection));
            moyensTransport.add(new Chunk(
                    "DECLARATION COMPLEMENTAIRE: je certifie avoir contract l'assurance complmentaire couvrant tous les risques non compris dans l'assurance obligatoire.\n",
                    fontItemSection));
        }
        addEmptyLine(moyensTransport, 1);
        if (util.use("taxi")) {
            moyensTransport.add(
                    new Chunk("Le Directeur autorise le remboursement d'un taxi " + "\n", fontItemSection));
        }
        if (util.use("vehicule_location")) {
            moyensTransport
                    .add(new Chunk("Le Directeur autorise le remboursement d'un vhicule de location " + "\n",
                            fontItemSection));
        }
        if (util.use("Vehicule_Service") || util.use("Vehicule_Personnel") || util.use("vehicule_location")) {
            moyensTransport
                    .add(new Chunk(
                            "\nJustication de l'utilisation du vhicule personnel ou de la location:"
                                    + util.getOrdreMission().getVehiculeJustificatif() + "\n",
                            fontItemSection));
            moyensTransport.add(
                    new Chunk("\nJe certifie tre en possession du permis de conduire depuis plus d'un an\n",
                            fontBoldItemSection));
        }

        document.add(moyensTransport);
        //
        // Frais annexe
        //
        Paragraph fraisAnnexe = new Paragraph();
        addEmptyLine(fraisAnnexe, 1);
        fraisAnnexe.add(new Chunk("Frais Annexe\n", fontTitleSection));
        fraisAnnexe.add(new Chunk("Frais d'inscription: " + util.getOrdreMission().getFraisInscription()
                + "    Montant: " + util.getOrdreMission().getMontantInscription() + " ", fontItemSection));
        document.add(fraisAnnexe);

        Paragraph avance = new Paragraph();
        addEmptyLine(avance, 1);
        avance.add(new Chunk("Avance: ", fontTitleSection));
        avance.add(new Chunk(util.getOrdreMission().getAvance(), fontItemSection));
        document.add(avance);
        //
        // Informations financieres
        //
        Paragraph finance = new Paragraph();
        addEmptyLine(finance, 1);
        finance.add(new Chunk("Informations financires\n", fontTitleSection));
        finance.add(new Chunk("Centre financier: " + util.getOrdreMission().getCentreFinancier()
                + "   Projet ou eOTP: " + util.getOrdreMission().getProjet() + "\n", fontItemSection));
        finance.add(new Chunk("Responsable financier: " + util.getOrdreMission().getPrenomResponsableFinancier()
                + " " + util.getOrdreMission().getNomResponsableFinancier() + "\n", fontItemSection));
        finance.add(
                new Chunk("Autorit hirarchique: " + util.getOrdreMission().getPrenomAutoriteHierarchique()
                        + " " + util.getOrdreMission().getNomAutoriteHierarchique(), fontItemSection));
        document.add(finance);
        //
        // Informations complementaires eventuelles
        //              
        if (util.getOrdreMission().getInformationsComplementaires() != null) {
            Paragraph informationsComplementaires = new Paragraph();
            informationsComplementaires.add(new Chunk("\nInformations complementaires: ", fontTitleSection));
            informationsComplementaires
                    .add(new Chunk(util.getOrdreMission().getInformationsComplementaires(), fontItemSection));
            document.add(informationsComplementaires);
        }

        document.close();
        file.close();
    } catch (DocumentException | IOException e) {
        System.err
                .println("Erreur a la generation du fichier " + util.getPdfFileName() + ": " + e.getMessage());
    }
}

From source file:fr.ensicaen.yousign.GenerePDF.java

private Paragraph addEntete() {
    Paragraph paragraph = new Paragraph();
    PdfPTable table = new PdfPTable(2);
    table.setWidthPercentage(100);/*w w  w  .ja v a2  s  .c  om*/
    try {
        //
        // Affichage du logo
        //
        PdfPCell logoCell = new PdfPCell(Image.getInstance(YousignConfig.LOGO), false); // false: le logo ne remplit pas toute la cellule
        logoCell.setBorder(Rectangle.NO_BORDER);
        table.addCell(logoCell);
        //
        // Affichage de la  date et du titre
        //
        Date date = new Date();
        DateFormat format_fr = DateFormat.getDateInstance(DateFormat.FULL, Locale.FRENCH);
        PdfPCell titleCell = new PdfPCell(new Phrase(
                new Chunk(format_fr.format(date) + "\n\n" + title + util.getOrdreMission().getNumeroMission()
                        + "\n" + util.getOrdreMission().getFrais(), fontItemTitleSection)));
        titleCell.setBorder(Rectangle.NO_BORDER);
        titleCell.setHorizontalAlignment(Element.ALIGN_CENTER);
        titleCell.setVerticalAlignment(Element.ALIGN_MIDDLE);
        table.addCell(titleCell);
    } catch (BadElementException | IOException ex) {
        Logger.getLogger(GenerePDF.class.getName()).log(Level.SEVERE, null, ex);
    }
    paragraph.add(table);
    return paragraph;
}

From source file:fr.ybonnel.breizhcamppdf.PdfRenderer.java

License:Apache License

private void addSponsor(PdfPTable sponsors, String imageUrl, int colspan)
        throws DocumentException, IOException {
    PdfPCell sponsor = new PdfPCell();
    sponsor.setImage(Image.getInstance(imageUrl));
    sponsor.setColspan(colspan);/*w  w  w .  j  a va 2s  .c o m*/
    sponsor.setBorder(Rectangle.NO_BORDER);
    sponsor.setVerticalAlignment(Element.ALIGN_MIDDLE);
    sponsors.addCell(sponsor);
}

From source file:fr.ybonnel.breizhcamppdf.PdfRenderer.java

License:Apache License

private void addLegend(Set<String> tracksInPage) throws DocumentException {
    PdfPTable legend = new PdfPTable(tracksInPage.size() + 1);
    legend.setWidthPercentage(100f);/*  w  w  w .  j ava  2 s  . c  o  m*/
    PdfPCell cellTitle = new PdfPCell(new Phrase("Lgende : ", speakerFont));
    cellTitle.setBorder(Rectangle.NO_BORDER);
    cellTitle.setHorizontalAlignment(Element.ALIGN_CENTER);
    cellTitle.setPadding(2);
    legend.addCell(cellTitle);

    for (String track : tracksInPage) {
        PdfPCell color = new PdfPCell(new Phrase(track, speakerFont));
        color.setHorizontalAlignment(Element.ALIGN_CENTER);
        color.setPadding(2);
        color.setBackgroundColor(mapTrack.get(track));
        legend.addCell(color);
    }
    tracksInPage.clear();
    document.add(legend);
}