Example usage for com.itextpdf.io.font FontConstants TIMES_ROMAN

List of usage examples for com.itextpdf.io.font FontConstants TIMES_ROMAN

Introduction

In this page you can find the example usage for com.itextpdf.io.font FontConstants TIMES_ROMAN.

Prototype

String TIMES_ROMAN

To view the source code for com.itextpdf.io.font FontConstants TIMES_ROMAN.

Click Source Link

Document

This is a possible value of a base 14 type 1 font

Usage

From source file:com.asptt.plongee.resa.util.UtilsFSpdf.java

public Document createPdfFS(String dest, FicheSecurite fs)
            throws IOException, FileNotFoundException, java.io.IOException {
        PdfDocument pdfDoc = new PdfDocument(new PdfWriter(dest));
        PageSize ps = PageSize.A4.rotate();
        //calcul du nombre de page (si + de 8 palanques => 2 pages)
        int nbPage = 1;
        if (fs.getPalanques().size() > 8) {
            nbPage = 2;//from  ww w .  j  a v  a 2s  . c  om
        }
        pdfDoc.addNewPage(ps);
        Document doc = new Document(pdfDoc);
        Table entete = createEntete(fs, 1, nbPage);
        doc.add(entete);

        // style pour les plongeurs
        Style s_plongeur = new Style();
        PdfFont fontPlongeur = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN);
        s_plongeur.setFont(fontPlongeur).setFontSize(10);
        s_plongeur.setFontColor(Color.BLACK);
        // Deuxieme table pour les palanques 
        Table tablePalanques = new Table(4);
        for (int i = 0; i < 8; i++) {
            createTablePlongeur(tablePalanques, fs, i, s_plongeur);
        }
        doc.add(tablePalanques);
        if (nbPage == 2) {
            Table tablePalanques2 = new Table(4);
            pdfDoc.addNewPage(ps);
            Table entete2 = createEntete(fs, 2, nbPage);
            doc.add(entete2);
            for (int i = 8; i < 16; i++) {
                createTablePlongeur(tablePalanques2, fs, i, s_plongeur);
            }
            doc.add(tablePalanques2);
        }
        doc.close();
        return doc;
    }

From source file:com.asptt.plongee.resa.util.UtilsFSpdf.java

private Table createEntete(FicheSecurite fs, int numeroPage, int nbPage) throws java.io.IOException {
        float[] columnWidths = { 20, 27, 23, 23, 6 };
        // table : premiere table pour les parametres de la plonge
        Table table = new Table(columnWidths);
        table.setMargins(0, 0, 0, 0);//from  ww w  . ja  va2  s .c  o m
        table.setWidthPercent(100);
        // entete style pour les entetes
        Style entete = new Style();
        PdfFont fontEntete = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN);
        entete.setFont(fontEntete).setFontSize(12);
        entete.setFontColor(Color.BLACK);
        // style pour les libells
        Style libelle = new Style();
        PdfFont fontLibelle = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN);
        libelle.setFont(fontLibelle).setFontSize(12);
        libelle.setFontColor(Color.RED);

        Paragraph entete1 = new Paragraph();
        entete1.add(new Text("DATE\n").addStyle(entete));
        entete1.add(new Text("DIRECTEUR DE PLONGEE\n").addStyle(entete));
        entete1.add(new Text("PILOTE DU BATEAU\n").addStyle(entete));
        entete1.add(new Text("LIEU DE PLONGEE\n").addStyle(entete));
        entete1.add(new Text("METEO\n").addStyle(entete));

        Paragraph libelle1 = new Paragraph();
        libelle1.add(new Text(": " + ResaUtil.getDateString(fs.getDatePlongee()) + "\n").addStyle(libelle));
        libelle1.add(new Text(": " + fs.getNomDP() + "\n").addStyle(libelle));
        libelle1.add(new Text(": " + fs.getNomPilote() + "\n").addStyle(libelle));
        libelle1.add(new Text(": " + fs.getSite() + "\n").addStyle(libelle));
        libelle1.add(new Text(": " + fs.getMeteo() + "\n").addStyle(libelle));

        Cell cellEntete1 = new Cell();
        cellEntete1.add(entete1);
        cellEntete1.setBorderRight(Border.NO_BORDER);
        cellEntete1.setHorizontalAlignment(HorizontalAlignment.LEFT);
        table.addCell(cellEntete1);

        Cell cellLibelle1 = new Cell();
        cellLibelle1.add(libelle1);
        cellLibelle1.setBorderLeft(Border.NO_BORDER);
        cellLibelle1.setTextAlignment(TextAlignment.LEFT);
        table.addCell(cellLibelle1);

        Paragraph titre = new Paragraph();
        titre.add(new Text("ASPTT MARSEILLE\n").addStyle(entete));
        titre.add(new Text("PLONGEE\n").addStyle(entete));
        titre.add(new Text("---\n").addStyle(entete));
        titre.add(new Text("Fiche de Scurit\n").addStyle(entete));

        Cell cellTitre = new Cell();
        cellTitre.add(titre);
        cellTitre.setTextAlignment(TextAlignment.CENTER);
        cellTitre.setVerticalAlignment(VerticalAlignment.MIDDLE);
        table.addCell(cellTitre);

        Paragraph entete2 = new Paragraph();
        entete2.add(new Text("PLONGEE NUMERO\n").addStyle(entete));
        entete2.add(new Text("NOMBRE DE PLONGEURS\n").addStyle(entete));
        entete2.add(new Text("HEURE DE DEPART\n").addStyle(entete));
        entete2.add(new Text("HEURES BATEAU\n").addStyle(entete));
        entete2.add(new Text("Page \n").addStyle(entete));

        Paragraph libelle2 = new Paragraph();
        libelle2.add(new Text(": " + fs.getNumeroPlongee() + "\n").addStyle(libelle));
        libelle2.add(new Text(": " + fs.getNbPlongeurs() + "\n").addStyle(libelle));
        libelle2.add(new Text(": " + fs.getHhDepart() + ":" + fs.getMnDepart() + "\n").addStyle(libelle));
        libelle2.add(new Text(": " + fs.getNbHeuresBateau() + "\n").addStyle(libelle));
        libelle2.add(new Text(": " + numeroPage + " / " + nbPage + "\n").addStyle(libelle));

        Cell cellEntete2 = new Cell();
        cellEntete2.add(entete2);
        cellEntete2.setBorderRight(Border.NO_BORDER);
        cellEntete2.setHorizontalAlignment(HorizontalAlignment.RIGHT);
        table.addCell(cellEntete2);

        Cell cellLibelle2 = new Cell();
        cellLibelle2.add(libelle2);
        cellLibelle2.setBorderLeft(Border.NO_BORDER);
        cellLibelle2.setTextAlignment(TextAlignment.LEFT);
        table.addCell(cellLibelle2);

        return table;
    }

From source file:com.asptt.plongee.resa.util.UtilsFSpdf.java

public void createPdf(String dest, FicheSecurite fs)
            throws IOException, FileNotFoundException, java.io.IOException {
        //Initialize PDF writer
        PdfWriter writer = new PdfWriter(dest);

        //Initialize PDF document
        PdfDocument pdf = new PdfDocument(writer);

        // Initialize document
        Document document = new Document(pdf);
        //Add paragraph to the document
        document.add(new Paragraph(fs.getSite()));
        // Add content
        Text title1 = new Text("The Strange Case of ").setFontColor(Color.BLUE);
        Text title2 = new Text("Dr. Jekyll SIIMMOONN").setStrokeColor(Color.GREEN)
                .setTextRenderingMode(PdfCanvasConstants.TextRenderingMode.FILL_STROKE);
        Text title3 = new Text(" and ");
        Text title4 = new Text("Mr. Hyde").setStrokeColor(Color.RED).setStrokeWidth(0.5f)
                .setTextRenderingMode(PdfCanvasConstants.TextRenderingMode.STROKE);
        Paragraph p = new Paragraph().setFontSize(24).add(title1).add(title2).add(title3).add(title4);
        document.add(p);// w w  w .  ja  va 2s.com

        Style normal = new Style();
        PdfFont font = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN);
        normal.setFont(font).setFontSize(14);
        Style code = new Style();
        PdfFont monospace = PdfFontFactory.createFont(FontConstants.COURIER);
        code.setFont(monospace).setFontColor(Color.RED).setBackgroundColor(Color.LIGHT_GRAY);
        Paragraph p2 = new Paragraph();
        p2.add(new Text("The Strange Case of ").addStyle(normal));
        p2.add(new Text("Dr. Jekyll").addStyle(code));
        p2.add(new Text(" and ").addStyle(normal));
        p2.add(new Text("Mr. Hyde").addStyle(code));
        p2.add(new Text(".").addStyle(normal));
        document.add(p2);

        //Close document
        document.close();
        //        PageSize ps = PageSize.A4.rotate();
        //        PdfPage page = pdf.addNewPage(ps);
        //        PdfCanvas canvas = new PdfCanvas(page);
        //        canvas.concatMatrix(1, 0, 0, 1, ps.getWidth() / 2, ps.getHeight() / 2);
        ////Draw X axis
        //        canvas.moveTo(-(ps.getWidth() / 2 - 15), 0)
        //                .lineTo(ps.getWidth() / 2 - 15, 0)
        //                .stroke();
        ////Draw X axis arrow
        //        canvas.setLineJoinStyle(PdfCanvasConstants.LineJoinStyle.ROUND)
        //                .moveTo(ps.getWidth() / 2 - 25, -10)
        //                .lineTo(ps.getWidth() / 2 - 15, 0)
        //                .lineTo(ps.getWidth() / 2 - 25, 10).stroke()
        //                .setLineJoinStyle(PdfCanvasConstants.LineJoinStyle.MITER);
        ////Draw Y axis
        //        canvas.moveTo(0, -(ps.getHeight() / 2 - 15))
        //                .lineTo(0, ps.getHeight() / 2 - 15)
        //                .stroke();
        ////Draw Y axis arrow
        //        canvas.saveState()
        //                .setLineJoinStyle(PdfCanvasConstants.LineJoinStyle.ROUND)
        //                .moveTo(-10, ps.getHeight() / 2 - 25)
        //                .lineTo(0, ps.getHeight() / 2 - 15)
        //                .lineTo(10, ps.getHeight() / 2 - 25).stroke()
        //                .restoreState();
        ////Draw X serif
        //        for (int i = -((int) ps.getWidth() / 2 - 61);
        //                i < ((int) ps.getWidth() / 2 - 60); i += 40) {
        //            canvas.moveTo(i, 5).lineTo(i, -5);
        //        }
        ////Draw Y serif
        //        for (int j = -((int) ps.getHeight() / 2 - 57);
        //                j < ((int) ps.getHeight() / 2 - 56); j += 40) {
        //            canvas.moveTo(5, j).lineTo(-5, j);
        //        }
        //        canvas.stroke();
        ////        pdf.close();
        ////        PdfPage page = pdf.addNewPage();
        ////        Rectangle rectangle = new Rectangle(x, y, 100, 100);
        ////        Canvas canvas = new Canvas(pdfCanvas, pdf, rectangle);
        //        float llx = 0;
        //        float lly = 0;
        //        float urx = 100;
        //        float ury = 100;
        //        for (Palanque palanque : fs.getPalanques()) {
        //            llx=llx+5;
        //            lly=lly+70;
        //            Rectangle rectangle = new Rectangle(llx, lly, urx-llx, ury-lly);
        ////            PdfCanvas canvas = new PdfCanvas(page);
        //            canvas = new PdfCanvas(page);
        ////            PdfCanvas canvas = new PdfCanvas(pdf.addNewPage());
        ////            pdfCanvas.rectangle(rectangle);
        //            canvas.setStrokeColor(Color.RED).setLineWidth(0.5f).rectangle(rectangle).stroke();
        ////            canvas = new Canvas(pdfCanvas, pdf, rectangle);
        ////            pdfCanvas.stroke();
        //            PdfFont fontRoman = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN);
        //            PdfFont bold = PdfFontFactory.createFont(FontConstants.TIMES_BOLD);
        //            Text title = new Text("GUIDE palanque:"+palanque.getNomCompletGuide()).setFont(bold);
        //            Text author = new Text("PLONGEUR 1 palanque:"+palanque.getNomCompletPlongeur1()).setFont(fontRoman);
        //            Paragraph p3 = new Paragraph().add(title).add(" by ").add(author);
        //            new Canvas(canvas,pdf,rectangle).add(p3);
        ////            canvas.add(p3);
        //        }
        //Close document
        pdf.close();

    }

From source file:com.asptt.plongee.resa.util.UtilsFSpdf.java

public void createPdfPlongee(String dest, Plongee plongee)
            throws IOException, FileNotFoundException, java.io.IOException {
        PageSize ps = PageSize.A4.rotate();
        PdfDocument pdfDoc = new PdfDocument(new PdfWriter(dest));
        pdfDoc.addNewPage(ps);//from   w  ww .j av  a  2 s .c  o  m
        Document doc = new Document(pdfDoc);
        float[] columnWidths = { 20, 20, 5, 10, 15, 15, 15 };
        // table : premiere table pour les parametres de la plonge
        Table table = new Table(columnWidths);
        table.setMargins(0, 0, 0, 0);
        table.setWidthPercent(100);
        // entete style pour les titres
        Style s_titre = new Style();
        PdfFont fontEntete = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN);
        s_titre.setFont(fontEntete).setFontSize(12);
        s_titre.setFontColor(Color.ORANGE);
        // style pour l'entete de la table
        Style s_entete = new Style();
        PdfFont fontLibelle = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN);
        s_entete.setFont(fontLibelle).setFontSize(12);
        s_entete.setFontColor(Color.BLUE);

        Paragraph entete1 = new Paragraph();
        entete1.add(new Text("Plong\u00e9e du " + ResaUtil.getJourDatePlongee(plongee.getDatePlongee()) + "    '"
                + ResaUtil.getHeurePlongee(plongee.getDatePlongee()) + "'\n").addStyle(s_titre));
        entete1.add(
                new Text("Nombre de participants " + plongee.getParticipants().size() + "\n").addStyle(s_titre));
        entete1.add(new Text("\n").addStyle(s_titre));
        entete1.add(new Text("Inscrit\n").addStyle(s_titre));

        Cell cellEntete1 = new Cell(1, 7);
        cellEntete1.add(entete1);
        cellEntete1.setBorderRight(Border.NO_BORDER);
        //        cellEntete1.setBackgroundColor(Color.BLUE);
        cellEntete1.setHorizontalAlignment(HorizontalAlignment.LEFT);
        table.addCell(cellEntete1);

        Cell cellNom = new Cell().add(new Paragraph("Nom"));
        cellNom.setTextAlignment(TextAlignment.CENTER);
        cellNom.setFontSize(8);
        cellNom.setFontColor(Color.BLACK);
        cellNom.setPadding(5);
        cellNom.setBackgroundColor(new DeviceRgb(140, 221, 8));
        table.addCell(cellNom);

        Cell cellPrenom = new Cell().add(new Paragraph("Prnom"));
        cellPrenom.setTextAlignment(TextAlignment.CENTER);
        cellPrenom.setFontSize(8);
        cellPrenom.setFontColor(Color.BLACK);
        cellPrenom.setPadding(5);
        cellPrenom.setBackgroundColor(new DeviceRgb(140, 221, 8));
        table.addCell(cellPrenom);

        Cell cellNiveau = new Cell().add(new Paragraph("Niveau"));
        cellNiveau.setTextAlignment(TextAlignment.CENTER);
        cellNiveau.setFontSize(8);
        cellNiveau.setFontColor(Color.BLACK);
        cellNiveau.setPadding(5);
        cellNiveau.setBackgroundColor(new DeviceRgb(140, 221, 8));
        table.addCell(cellNiveau);

        Cell cellAptitude = new Cell().add(new Paragraph("Aptitude"));
        cellAptitude.setTextAlignment(TextAlignment.CENTER);
        cellAptitude.setFontSize(8);
        cellAptitude.setFontColor(Color.BLACK);
        cellAptitude.setPadding(5);
        cellAptitude.setBackgroundColor(new DeviceRgb(140, 221, 8));
        table.addCell(cellAptitude);

        Cell cellTelephone1 = new Cell().add(new Paragraph("Tlphone"));
        cellTelephone1.setTextAlignment(TextAlignment.CENTER);
        cellTelephone1.setFontSize(8);
        cellTelephone1.setFontColor(Color.BLACK);
        cellTelephone1.setPadding(5);
        cellTelephone1.setBackgroundColor(new DeviceRgb(140, 221, 8));
        table.addCell(cellTelephone1);

        Cell cellCommentaire = new Cell().add(new Paragraph("Commentaire"));
        cellCommentaire.setTextAlignment(TextAlignment.CENTER);
        cellCommentaire.setFontSize(8);
        cellCommentaire.setFontColor(Color.BLACK);
        cellCommentaire.setPadding(5);
        cellCommentaire.setBackgroundColor(new DeviceRgb(140, 221, 8));
        table.addCell(cellCommentaire);

        List<Adherent> adherentsInscrit = plongee.getParticipants();

        for (Adherent adherent : adherentsInscrit) {
            Cell cellNomP = new Cell().add(new Paragraph(adherent.getNom()));
            cellNomP.setTextAlignment(TextAlignment.CENTER);
            cellNomP.setFontSize(8);
            cellNomP.setFontColor(Color.BLACK);
            cellNomP.setPadding(5);
            cellNomP.setBackgroundColor(new DeviceRgb(140, 221, 8));
            table.addCell(cellNomP);

            Cell cellPrenomP = new Cell().add(new Paragraph(adherent.getPrenom()));
            cellPrenomP.setTextAlignment(TextAlignment.CENTER);
            cellPrenomP.setFontSize(8);
            cellPrenomP.setFontColor(Color.BLACK);
            cellPrenomP.setPadding(5);
            cellPrenomP.setBackgroundColor(new DeviceRgb(140, 221, 8));
            table.addCell(cellPrenomP);

            // Ds que le plongeur est encadrant, on affiche son niveau d'encadrement
            String niveauAffiche = adherent.getPrerogative();
            // Pour les externes, le niveau est suffix par (Ext.)
            if (adherent.getActifInt() == 2) {
                niveauAffiche = niveauAffiche + " (Ext.)";
            }
            Cell cellNiveauP = new Cell().add(new Paragraph(niveauAffiche));
            cellNiveauP.setTextAlignment(TextAlignment.CENTER);
            cellNiveauP.setFontSize(8);
            cellNiveauP.setFontColor(Color.BLACK);
            cellNiveauP.setPadding(5);
            cellNiveauP.setBackgroundColor(new DeviceRgb(140, 221, 8));
            table.addCell(cellNiveauP);

            Cell cellAptitudeP;
            if (null == adherent.getAptitude()) {
                cellAptitudeP = new Cell().add(new Paragraph("  "));
            } else {
                cellAptitudeP = new Cell().add(new Paragraph(adherent.getAptitude().getText()));
            }
            cellAptitudeP.setTextAlignment(TextAlignment.CENTER);
            cellAptitudeP.setFontSize(8);
            cellAptitudeP.setFontColor(Color.BLACK);
            cellAptitudeP.setPadding(5);
            cellAptitudeP.setBackgroundColor(new DeviceRgb(140, 221, 8));
            table.addCell(cellAptitudeP);

            Cell cellTelephone1P = new Cell().add(new Paragraph(adherent.getTelephone()));
            cellTelephone1P.setTextAlignment(TextAlignment.CENTER);
            cellTelephone1P.setFontSize(8);
            cellTelephone1P.setFontColor(Color.BLACK);
            cellTelephone1P.setPadding(5);
            cellTelephone1P.setBackgroundColor(new DeviceRgb(140, 221, 8));
            table.addCell(cellTelephone1P);

            Cell cellCommentaireP = new Cell().add(new Paragraph(adherent.getCommentaire()));
            cellCommentaireP.setTextAlignment(TextAlignment.CENTER);
            cellCommentaireP.setFontSize(8);
            cellCommentaireP.setFontColor(Color.BLACK);
            cellCommentaireP.setPadding(5);
            cellCommentaireP.setBackgroundColor(new DeviceRgb(140, 221, 8));
            table.addCell(cellCommentaireP);

        }
        doc.add(table);
        doc.close();
    }

From source file:com.isw.cec.Servlet.GenerarFoliosServlet.java

License:Open Source License

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    String appPath = request.getServletContext().getRealPath("");
    String savePath = appPath + File.separator + SAVE_DIR;

    File fileSaveDir = new File(savePath);
    if (!fileSaveDir.exists())
        fileSaveDir.mkdirs();//from  w  w  w .  j  av  a 2s .  c  o m

    String fileName = java.util.UUID.randomUUID().toString() + ".pdf";
    Curso curso = (Curso) request.getAttribute("curso");
    List<Entry<String, String>> alum_fol = Reader.getAlumFolios(curso.getID());

    OutputStream fos = new FileOutputStream(savePath + File.separator + fileName);
    PdfWriter writer = new PdfWriter(fos);

    PdfDocument pdf = new PdfDocument(writer);

    Document document = new Document(pdf, PageSize.A4);
    document.setMargins(85, 57, 71, 71);

    PdfFont font = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN);
    PdfFont bold = PdfFontFactory.createFont(FontConstants.TIMES_BOLD);

    Paragraph p = new Paragraph("Folios de los alumnos inscritos al curso");
    p.setTextAlignment(TextAlignment.CENTER);
    document.add(p);

    p = new Paragraph(curso.getNombre());
    p.setFont(bold);
    p.setTextAlignment(TextAlignment.CENTER);
    p.setMarginBottom(70);
    document.add(p);

    Table table = new Table(new float[] { 1, 1 });
    table.setWidthPercent(100);

    Cell c = new Cell().add(new Paragraph("ALUMNO").setFont(bold));
    c.setTextAlignment(TextAlignment.CENTER);
    table.addHeaderCell(c);

    c = new Cell().add(new Paragraph("FOLIO").setFont(bold));
    c.setTextAlignment(TextAlignment.CENTER);
    table.addHeaderCell(c);

    for (Entry<String, String> e : alum_fol) {
        table.addCell(new Cell().add(new Paragraph(e.getKey()).setFont(font)));
        table.addCell(new Cell().add(new Paragraph(e.getValue()).setFont(font)));
    }

    document.add(table);

    document.close();

    Writer.openCurso(curso.getID(), fileName);
    response.getWriter().println("OK");
}

From source file:org.nih.nci.App.java

protected void generatePdf(String dest, NCIDosePdfObject jObject) throws Exception {

    PdfWriter writer = new PdfWriter(dest, new WriterProperties().addXmpMetadata());
    PdfDocument pdfDoc = new PdfDocument(writer);
    Document document = new Document(pdfDoc, PageSize.LETTER, false);

    pdfDoc.setTagged();/*from  www  . ja v a  2 s . c  o m*/
    pdfDoc.getCatalog().setViewerPreferences(new PdfViewerPreferences().setDisplayDocTitle(true));
    pdfDoc.getCatalog().setLang(new PdfString("en-US"));
    pdfDoc.getCatalog().setViewerPreferences(new PdfViewerPreferences().setDisplayDocTitle(true));
    PdfDocumentInfo info = pdfDoc.getDocumentInfo();
    info.setTitle("Software Transfer Agreement");

    Style headerStyle = new Style();
    PdfFont headerFont = PdfFontFactory.createFont(FontConstants.HELVETICA);
    headerStyle.setFont(headerFont).setFontSize(10);

    HeaderEventHandler handler = new HeaderEventHandler();
    pdfDoc.addEventHandler(PdfDocumentEvent.END_PAGE, handler);
    handler.setHeader("NCI Reference # ___________________");

    Style titleStyle = new Style();
    PdfFont titleFont = PdfFontFactory.createFont(FontConstants.TIMES_BOLD, true);
    titleStyle.setFont(titleFont).setFontSize(14);

    Style normalStyle = new Style();
    PdfFont normalFont = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN, true);
    normalStyle.setFont(normalFont).setFontSize(12);

    Style italicStyle = new Style();
    PdfFont italicFont = PdfFontFactory.createFont(FontConstants.TIMES_ITALIC, true);
    italicStyle.setFont(italicFont).setFontSize(12);

    InputStream istream = getClass().getResourceAsStream("/FreeSerif.ttf");
    byte[] bytes = IOUtils.toByteArray(istream);
    PdfFont symbol = PdfFontFactory.createFont(bytes, PdfEncodings.IDENTITY_H, true);

    Text checkbox = new Text("\u2611");//
    checkbox.setFont(symbol);
    checkbox.setFontSize(12);

    Paragraph p = new Paragraph();
    p.setMarginTop(20);
    p.setTextAlignment(TextAlignment.CENTER);
    Text text = new Text("SOFTWARE TRANSFER AGREEMENT").addStyle(titleStyle);
    p.add(text);
    document.add(p);

    p = new Paragraph();
    p.setMarginLeft(56f);
    text = new Text("Provider: National Cancer Institute (NCI)").addStyle(normalStyle);
    p.add(text);
    document.add(p);

    p = new Paragraph();
    p.setMarginLeft(56f);
    text = new Text("Recipient Institution: ").addStyle(normalStyle);
    p.add(text);
    text = new Text(jObject.getInstitution()).addStyle(italicStyle).setUnderline();
    p.add(text);
    document.add(p);

    p = new Paragraph();
    p.setMarginLeft(28f);
    text = new Text("WHEREAS, Provider has certain proprietary software and associated material described "
            + "below (hereinafter, collectively referred to as Software) ");
    text.addStyle(normalStyle);
    p.add(text).add(new Text("[Describe all items being "
            + "transferred such as; software, executable code, source code, documentation, data and all "
            + "other associated materials]").addStyle(italicStyle));
    p.add(new Text(":").addStyle(normalStyle));
    document.add(p);

    for (String str : jObject.getSoftwareText()) {
        p = new Paragraph();
        p.setMarginLeft(56f);
        text = new Text(str);
        text.addStyle(normalStyle).setBold();
        p.add(checkbox).add(text);
        document.add(p);
    }

    p = new Paragraph();
    p.setMarginLeft(28f);
    text = new Text("Provider agrees to transfer such Software to Recipient Investigator, to be used solely in "
            + "connection with the following research activity and for the following reasons (hereinafter "
            + "Project)");
    text.addStyle(normalStyle);
    p.add(text).add(new Text("[Describe with specificity the scope of use of Software under this agreement]")
            .addStyle(italicStyle));
    p.add(new Text(":").addStyle(normalStyle));
    document.add(p);

    p = new Paragraph();
    p.setMarginLeft(56f);
    text = new Text(jObject.getPurpose());
    text.addStyle(italicStyle).setUnderline();
    p.add(text);
    document.add(p);

    p = new Paragraph();
    p.setMarginLeft(28f);
    text = new Text("NOW, THEREFORE, in consideration of the premises and mutual covenants contained "
            + "herein, the Provider and Recipient agree as follows:");
    text.addStyle(normalStyle);
    p.add(text);
    document.add(p);

    List mainList = new List();
    mainList.setListSymbol("");

    List numberedList = new List(ListNumberingType.DECIMAL);
    numberedList.setMarginLeft(56f);
    numberedList.addStyle(normalStyle);

    numberedList.add("SOFTWARE SHALL NOT BE USED FOR TREATING OR DIAGNOSING " + "HUMAN SUBJECTS.");
    numberedList.add("Recipient will not license or sell or use Software for commercial purposes or "
            + "applications. Recipient Investigator shall retain control over Software and further "
            + "will not transfer the Software to individuals not under Recipient Investigators "
            + "direct supervision without the advance written approval of Provider. Recipient "
            + "agrees to comply with all regulations applicable to the Project and the use of the "
            + "Software.");
    numberedList.add("Recipient agrees not to copy Software, in whole or in part, except as required for "
            + "use by Recipient Investigator for the conduct of the Project. Recipient shall not "
            + "modify, extend, decompile, make derivatives of or reverse engineer the Software "
            + "without written permission from Provider.");
    numberedList.add("Information deemed confidential under this Agreement (Confidential Information?) "
            + "shall be clearly marked CONFIDENTIAL.? Any information that is orally "
            + "disclosed must be reduced to writing and marked CONFIDENTIAL? by the "
            + "provider of the information within thirty (30) days of such disclosure. To the extent "
            + "permitted by applicable law, the Recipient agrees to employ all reasonable efforts to "
            + "safeguard Providers Confidential Information to ensure that no unauthorized "
            + "person shall have access thereto and that no unauthorized copy, publication, "
            + "disclosure or distribution, in whole or in part, in any form shall be made.");
    numberedList.add("In all oral presentations or written publications concerning the Project, Recipient "
            + "will acknowledge Providers contribution of Software unless requested otherwise. "
            + "Recipient may publish or otherwise publicly disclose the results of the Project, but "
            + "if Provider has given Confidential Information to Recipient, such public disclosure "
            + "may be made only after Provider has had 30 days to review the proposed disclosure, "
            + "except when a shortened time period under court order or the Freedom of "
            + "Information Act pertains.");

    numberedList.add("The obligations of Recipient under Paragraph 4 above shall not extend to any part "
            + "of the Confidential Information:");

    ListItem item1 = new ListItem();
    item1.add(numberedList);
    mainList.add(item1);

    List subList = new List(ListNumberingType.ENGLISH_LOWER);
    subList.addStyle(normalStyle);
    subList.setMarginLeft(84f);

    subList.add("that can be demonstrated to have been publicly known at the time of " + "disclosure; or");
    subList.add("that can be demonstrated to have been properly in the Recipients "
            + "possession or that can be demonstrated to have been readily available to the "
            + "Recipient from another proper source prior to the disclosure; or");
    subList.add("that becomes part of the public domain or publicly known by publication or "
            + "otherwise, not due to any unauthorized act by the Recipient or its " + "subsidiaries; or");
    subList.add("that can be demonstrated as independently developed or acquired by the "
            + "Recipient without reference to or reliance upon such information; or");
    subList.add("that is required to be disclosed by law, provided that the Recipient takes "
            + "reasonable and lawful actions to avoid and/or minimize such disclosure.");

    ListItem item2 = new ListItem();
    item2.add(subList);
    mainList.add(item2);

    numberedList = new List(ListNumberingType.DECIMAL);
    numberedList.setMarginLeft(56f);
    numberedList.addStyle(normalStyle);
    numberedList.setItemStartIndex(7);

    numberedList.add("The Recipients obligations under Paragraphs 4 and 5 shall extend for a period of "
            + "three (3) years from the date of disclosure.");

    numberedList.add("Title in the Software shall remain with the Provider. It is understood that nothing "
            + "herein shall be deemed to constitute, by implication or otherwise, the grant to either "
            + "Party by the other of any license or other rights under any patent, patent application "
            + "or other intellectual property right or interest. Provider reserves the right to "
            + "distribute Software to others and to use it for Providers own purposes.");

    numberedList.add("When the Project is completed or this Agreement is terminated, whichever occurs "
            + "first, Recipient will destroy all copies of Software and Providers Confidential "
            + "Information unless directed otherwise by Provider in writing.");

    numberedList.add("This Agreement may be terminated by either Recipient or Provider by providing 30 "
            + "days advance notice.");

    numberedList.add("The Provider and Recipient each shall retain title to any patent or other intellectual "
            + "property of their respective employees developed or created in the course of the "
            + "Project defined in this Agreement. Neither Provider nor Recipient promise rights in "
            + "advance for inventions developed under this Agreement.");

    numberedList.add("No indemnification for any loss, claim, damage, or liability is intended or provided "
            + "by any party under this Agreement. Each party shall be liable for any loss, claim, "
            + "damage, or liability that said party incurs as a result of said partys activities under "
            + "this Agreement, except that the NIH, as an agency of the United States, assumes "
            + "liability only to the extent as provided under the United States Federal Tort Claims "
            + "Act (28 U.S.C. Chapter 171).");

    numberedList.add("Software is supplied AS IS, without any accompanying services or improvements\n"
            + "from Provider. SOFTWARE IS SUPPLIED TO RECIPIENT WITH NO\n"
            + "WARRANTIES, EXPRESS OR IMPLIED, INCLUDING ANY WARRANTY OF\n"
            + "MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Provider\n"
            + "makes no representations that the use of Software will not infringe any patent or\n"
            + "proprietary rights of third parties.");

    ListItem item3 = new ListItem();
    item3.add(numberedList);
    mainList.add(item3);

    document.add(mainList);

    p = new Paragraph();
    p.setMarginTop(20);
    p.setTextAlignment(TextAlignment.CENTER);
    text = new Text("Signatures Begin on Next Page").addStyle(titleStyle).setFontSize(12);
    p.add(text);
    document.add(p);
    document.add(new AreaBreak(AreaBreakType.NEXT_PAGE));

    p = new Paragraph();
    p.setMarginTop(20f);
    p.setMarginLeft(28f);
    text = new Text("For Recipient:").addStyle(titleStyle);
    p.add(text);
    document.add(p);

    p = new Paragraph();
    p.setMarginLeft(28f);
    text = new Text("Authorized Official for Recipient:").addStyle(italicStyle);
    p.add(text);
    document.add(p);

    p = new Paragraph();
    p.setMarginTop(10);
    p.setMarginLeft(28f);
    text = new Text("Name: _________________________________________  Title: _____________________\n")
            .addStyle(normalStyle);
    p.add(text);
    text = new Text("Signature: ______________________________________  Date: _____________________")
            .addStyle(normalStyle);
    p.add(text);
    document.add(p);

    p = new Paragraph();
    p.setMarginLeft(28f);
    p.setMarginTop(10);
    text = new Text("Read and Understood by Recipient Investigator:").addStyle(italicStyle);
    p.add(text);
    document.add(p);

    p = new Paragraph();
    p.setMarginLeft(28f);
    p.setMarginTop(10);
    p.add(new Text("Name: ").addStyle(normalStyle)).add(new Text(jObject.getFirst()).addStyle(italicStyle))
            .add(new Text(" ")).add(new Text(jObject.getLast()).addStyle(italicStyle)).add(new Tab())
            .add(new Text("Title: ").addStyle(normalStyle))
            .add(new Text(jObject.getTitle()).addStyle(italicStyle)).add(new Text("\n"));
    text = new Text("Signature: ____________________________________  Date: _____________________")
            .addStyle(normalStyle);
    p.add(text);
    document.add(p);

    p = new Paragraph();
    p.setMarginLeft(28f);
    p.setMarginTop(10);
    text = new Text("Recipients Mailing Address for Legal Notices:").addStyle(normalStyle);
    p.add(text);
    document.add(p);

    p = new Paragraph();
    p.setMarginLeft(28f);
    p.setMarginTop(10);
    text = new Text(jObject.getAddress()).addStyle(italicStyle);
    p.add(text);
    document.add(p);

    p = new Paragraph();
    p.setMarginLeft(28f);
    p.setMarginTop(10);
    p.add(new Text("Email: ").addStyle(normalStyle)).add(new Text(jObject.getEmail()).addStyle(italicStyle))
            .add(new Tab()).add(new Text("Phone: ").addStyle(normalStyle))
            .add(new Text(jObject.getPhone()).addStyle(italicStyle));

    document.add(p);

    p = new Paragraph();
    p.setMarginLeft(28f);
    p.setMarginTop(20);
    text = new Text("For Provider:").addStyle(titleStyle);
    p.add(text);
    document.add(p);

    p = new Paragraph();
    p.setMarginLeft(28f);
    text = new Text("Authorized Official for Provider:").addStyle(italicStyle);
    p.add(text);
    document.add(p);

    p = new Paragraph();
    p.setMarginLeft(28f);
    text = new Text("Name: _________________________________________  Title: _____________________\n")
            .addStyle(normalStyle);
    p.add(text);
    text = new Text("Signature: ______________________________________  Date: _____________________")
            .addStyle(normalStyle);
    p.add(text);
    document.add(p);

    p = new Paragraph();
    p.setMarginLeft(28f);
    p.setMarginTop(10);
    text = new Text("Read and Understood by Providers Investigator:").addStyle(italicStyle);
    p.add(text);
    document.add(p);

    p = new Paragraph();
    p.setMarginLeft(28f);
    p.setMarginTop(10);
    text = new Text("Signature: ______________________________________  Date: _____________________\n"
            + "Choonsik Lee, PhD\n" + "Senior Investigator\n" + "Radiation Epidemiology Branch\n"
            + "Division of Cancer Epidemiology & Genetics, NCI, NIH").addStyle(normalStyle);
    p.add(text);
    document.add(p);

    p = new Paragraph();
    p.setMarginLeft(28f);
    text = new Text("Providers Mailing Address for Legal Notices:").addStyle(normalStyle);
    p.add(text);
    document.add(p);

    p = new Paragraph();
    p.setMarginLeft(56f);
    text = new Text(
            "National Institutes of Health\n" + "National Cancer Institute\n" + "Technology Transfer Center\n"
                    + "9609 Medical Center Dr. Rm 1E530, MSC 9702 Bethesda, MD 20892-9702\n"
                    + "Phone: 240-276-5530 Fax: 240-276-5504").addStyle(normalStyle);
    p.add(text);
    document.add(p);

    addPageNumbers(pdfDoc);
    document.close();

}

From source file:Utils.PdfUtil.java

public void writeDocument() {
    try {//from w ww  .  java  2  s  .  c om
        PdfWriter writer = new PdfWriter(createDestination());
        PdfDocument pdf = new PdfDocument(writer);
        Document document = new Document(pdf);
        mCommonFont = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN);

        addTitle(document);
        addContent(document);
        addFooter(document);
        document.close();
    } catch (Exception ex) {
        Logger.getLogger(PdfUtil.class.getName()).log(Level.SEVERE, null, ex);
    }
}