Example usage for com.itextpdf.text Document Document

List of usage examples for com.itextpdf.text Document Document

Introduction

In this page you can find the example usage for com.itextpdf.text Document Document.

Prototype


public Document() 

Source Link

Document

Constructs a new Document -object.

Usage

From source file:com.automaster.autoview.server.servlet.PdfServlet.java

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    try {//from  ww w .java  2  s. c  o m
        this.dataAtual = new Date(System.currentTimeMillis());
        this.cnpjUn = null;

        String tempoDecorrido = " 0";
        int codVeiculo = Integer.parseInt(request.getParameter("cod"));
        String placa = request.getParameter("placa");
        Timestamp dataInicio = new Timestamp(Long.parseLong(request.getParameter("dataInicio")));
        Timestamp dataFim = new Timestamp(Long.parseLong(request.getParameter("dataFim")));

        TimeZone timeZonePadrao = TimeZone.getTimeZone(ZoneId.of("-3"));
        //System.out.println("Time zone : " + timeZonePadrao);

        ZzzPosPlacaVeiculoDAO zzzPosPlacaVeiculoDAO = new ZzzPosPlacaVeiculoDAO();
        VeiculoDAO veiculoDAO = new VeiculoDAO();
        TreeMap<String, String> veiculo = veiculoDAO.buscarVeiculoPorCodigo(codVeiculo);
        placa = veiculo.get("placa");
        //System.out.println("PLACA: "+veiculo.get("placa"));
        ArrayList<TreeMap<String, String>> posicoes = zzzPosPlacaVeiculoDAO
                .buscarPosicoesPorIntervaloData(placa, dataInicio, dataFim);
        int codCliente = Integer.parseInt(veiculo.get("clienteCodCliente"));
        //System.out.println("COD CLIENTE: "+codCliente);
        ClienteDAO clienteDAO = null;
        clienteDAO = new ClienteDAO();
        TreeMap<String, String> infoClienteUnidade = clienteDAO.buscarPorCodClienteSimplificado(codCliente);
        // Get the text that will be added to the PDF
        // step 1
        Document document = new Document();
        document.addHeader("Adriano", "AutoMaster");
        document.addCreator("Adriano Vale");
        document.addAuthor("Adriano Vale");
        document.addCreationDate();
        document.setPageSize(PageSize.A4.rotate());
        // step 2
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        PdfWriter writer = PdfWriter.getInstance(document, baos);
        TableHeader event = new TableHeader();
        writer.setPageEvent(event);
        // step 3
        document.open();
        // step 4
        //getServletContext().getRealPath("/")
        String url = getServletContext().getRealPath("/");
        //"D:\\Users\\Adriano\\Documents\\NetBeansProjects\\JRGWT\\web\\imagens\\logo.jpg"
        Image logo = Image.getInstance(url + "/imagens/logo.jpg");
        logo.setAlignment(Element.ALIGN_CENTER);

        Paragraph titulo = new Paragraph("Relatrio de Posies",
                new com.itextpdf.text.Font(com.itextpdf.text.Font.FontFamily.HELVETICA, 20, Font.BOLD));
        titulo.setAlignment(Element.ALIGN_CENTER);

        Paragraph tituloPlaca = new Paragraph("Veculo: " + placa,
                new com.itextpdf.text.Font(com.itextpdf.text.Font.FontFamily.HELVETICA, 16, Font.BOLD));
        tituloPlaca.setAlignment(Element.ALIGN_CENTER);

        SimpleDateFormat dataFormatadaCabecalho = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
        dataFormatadaCabecalho.setTimeZone(timeZonePadrao);

        Date dataHoraInicio0 = new Date(Long.parseLong(request.getParameter("dataInicio")));
        Date dataHoraFim0 = new Date(Long.parseLong(request.getParameter("dataFim")));
        Paragraph periodo = new Paragraph(
                "Perodo: De: " + dataFormatadaCabecalho.format(dataHoraInicio0) + " at: "
                        + dataFormatadaCabecalho.format(dataHoraFim0),
                new com.itextpdf.text.Font(com.itextpdf.text.Font.FontFamily.HELVETICA, 16, Font.BOLD));
        periodo.setSpacingAfter(10.0f);
        periodo.setAlignment(Element.ALIGN_CENTER);
        //PdfPTable tabela = new PdfPTable(new float[]{0.11f, 0.095f, 0.06f, 0.065f, 0.085f, 0.06f, 0.04f, 0.065f, 0.055f, 0.06f, 0.24f, 0.065f});
        PdfPTable tabela = new PdfPTable(new float[] { 0.07f, 0.045f, 0.045f, 0.27f });
        tabela.setWidthPercentage(98.0f);
        tabela.setHorizontalAlignment(Element.ALIGN_CENTER);
        PdfPCell tituloData = new PdfPCell(Phrase.getInstance("Data e Hora"));
        tituloData.setHorizontalAlignment(Element.ALIGN_CENTER);
        tabela.addCell(tituloData);
        //tabela.addCell("Data e hora");
        PdfPCell tituloVel = new PdfPCell(Phrase.getInstance("Velocidade"));
        tituloVel.setHorizontalAlignment(Element.ALIGN_CENTER);
        tabela.addCell(tituloVel);
        PdfPCell tituloIgn = new PdfPCell(Phrase.getInstance("Ignio"));
        tituloIgn.setHorizontalAlignment(Element.ALIGN_CENTER);
        tabela.addCell(tituloIgn);
        //tabela.addCell("Latitude");
        //tabela.addCell("Longitude");
        //tabela.addCell("Satlite");
        //tabela.addCell("GPS");
        //tabela.addCell("Entrada");
        //tabela.addCell("Sada");
        //tabela.addCell("Evento");
        PdfPCell tituloEnd = new PdfPCell(Phrase.getInstance("Endereo"));
        tituloEnd.setHorizontalAlignment(Element.ALIGN_CENTER);
        tabela.addCell(tituloEnd);
        //tabela.addCell("Direo");
        double latAnt = 0;
        double lonAnt = 0;
        double latAtual = 0;
        double lonAtual = 0;
        double distanciaTotal = 0;
        double distancia = 0;
        event.setHeader("AutoMaster");

        for (int i = 0; i < posicoes.size(); i++) {
            //for (int col = 0; col < posicoes.get(i).size(); col++) {
            if (i == 0) {
                distancia = 0;
                //System.out.println("linha 00 - PDF");
            } else {
                //System.out.println("linha 01 - PDF");
                latAnt = Double.parseDouble(posicoes.get(i - 1).get("lat"));
                lonAnt = Double.parseDouble(posicoes.get(i - 1).get("lon"));
                latAtual = Double.parseDouble(posicoes.get(i).get("lat"));
                lonAtual = Double.parseDouble(posicoes.get(i).get("lon"));
                //System.out.println("linha 02 - PDF");
                if (latAnt == latAtual && lonAnt == lonAtual) {
                    distancia = 0;
                } else {
                    distancia = caculaDistanciaEntreDoisPontos(latAnt, lonAnt, latAtual, lonAtual);
                    //System.out.println("linha 03 - PDF");
                }

            }
            distanciaTotal = distanciaTotal + distancia;
            //System.out.println("linha 04 - PDF");
            //TimeZone.setDefault(timeZoneMundial);
            Date dataHora0 = new Date(Long.parseLong(posicoes.get(i).get("dataHora")));
            //System.out.println("dataHora0 : "+dataHora0.toString());
            //TimeZone.setDefault(timeZoneCliente);
            //Date dataHora = new Date(dataHora0.getTime());
            SimpleDateFormat dataFormatada = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
            dataFormatada.setTimeZone(timeZonePadrao);
            //System.out.println("dataFormatada : "+dataFormatada);
            PdfPCell celData = new PdfPCell(Phrase.getInstance(dataFormatada.format(dataHora0)));
            celData.setHorizontalAlignment(Element.ALIGN_CENTER);
            tabela.addCell(celData);
            //tabela.addCell(dataFormatada);
            PdfPCell celVel = new PdfPCell(Phrase.getInstance(posicoes.get(i).get("vel")));
            celVel.setHorizontalAlignment(Element.ALIGN_CENTER);
            tabela.addCell(celVel);
            PdfPCell celIgn = new PdfPCell(Phrase
                    .getInstance(posicoes.get(i).get("ign").equalsIgnoreCase("True") ? "Ligada" : "Desligada"));
            celIgn.setHorizontalAlignment(Element.ALIGN_CENTER);
            tabela.addCell(celIgn);
            //tabela.addCell(posicoes.get(i).get("lat"));
            //tabela.addCell(posicoes.get(i).get("lon"));
            //tabela.addCell(posicoes.get(i).get("sat"));
            //tabela.addCell(posicoes.get(i).get("gps"));
            //tabela.addCell(posicoes.get(i).get("entrada"));
            //tabela.addCell(posicoes.get(i).get("saida"));
            //tabela.addCell(posicoes.get(i).get("evento"));
            PdfPCell celEnd = new PdfPCell(
                    Phrase.getInstance(posicoes.get(i).get("endereco") == null ? "Sem endereo"
                            : posicoes.get(i).get("endereco")));
            celEnd.setHorizontalAlignment(Element.ALIGN_CENTER);
            tabela.addCell(celEnd);
            //tabela.addCell(posicoes.get(i).get("direcao"));
            //}
        }
        //System.out.println("linha 05 - PDF");
        tempoDecorrido = calculaDatas(Long.parseLong(posicoes.get(0).get("dataHora")),
                Long.parseLong(posicoes.get(posicoes.size() - 1).get("dataHora")));
        //System.out.println("linha 06 - PDF");
        int index = 0;
        String kms = "0";
        String m = "";
        double metros = 0;
        //System.out.println("linha 07 - PDF");
        if (distanciaTotal > 0) {
            //System.out.println("linha 08 - PDF");
            BigDecimal decimalFormatado = new BigDecimal(distanciaTotal).setScale(2, RoundingMode.HALF_EVEN);
            //System.out.println("linha 09 - PDF");
            index = String.valueOf(decimalFormatado).indexOf(".");
            kms = String.valueOf(decimalFormatado).substring(0, index);
            m = "0" + (String.valueOf(decimalFormatado).substring(index));
            metros = Double.parseDouble(m) * 1000;
            //System.out.println("linha 10 - PDF");
        }
        /*document.add(new Paragraph(String.format(
         "You have submitted the following text using the %s method:",
         request.getMethod())));
         document.add(new Paragraph(text));*/
        //System.out.println("linha 11 - PDF");
        Paragraph kilometragem = new Paragraph(
                "Percorridos: " + kms + " KM e " + String.valueOf(metros) + " metros. Tempo: " + tempoDecorrido,
                new com.itextpdf.text.Font(com.itextpdf.text.Font.FontFamily.HELVETICA, 16, Font.BOLD));
        //System.out.println("linha 12 - PDF");
        periodo.setSpacingAfter(10.0f);
        periodo.setAlignment(Element.ALIGN_CENTER);
        // step 5
        document.add(logo);
        document.add(titulo);
        document.add(tituloPlaca);
        document.add(periodo);
        document.add(tabela);
        document.add(kilometragem);
        String dia = new SimpleDateFormat("dd").format(dataAtual);
        String ano = new SimpleDateFormat("yyyy").format(dataAtual);
        int mes = dataAtual.getMonth();
        String mesEscrito = null;
        switch (mes) {
        case 0:
            mesEscrito = "janeiro";
            break;
        case 1:
            mesEscrito = "fevereiro";
            break;
        case 2:
            mesEscrito = "maro";
            break;
        case 3:
            mesEscrito = "abril";
            break;
        case 4:
            mesEscrito = "maio";
            break;
        case 5:
            mesEscrito = "junho";
            break;
        case 6:
            mesEscrito = "julho";
            break;
        case 7:
            mesEscrito = "agosto";
            break;
        case 8:
            mesEscrito = "setembro";
            break;
        case 9:
            mesEscrito = "outubro";
            break;
        case 10:
            mesEscrito = "novembro";
            break;
        case 11:
            mesEscrito = "dezembro";
            break;
        }
        String textRodape = infoClienteUnidade.get("cidadeUnidade") + " , "
                + infoClienteUnidade.get("estadoUnidade") + "    " + dia + "  de  " + mesEscrito + "  de  "
                + ano + ".";
        Paragraph localData = new Paragraph(textRodape,
                new com.itextpdf.text.Font(com.itextpdf.text.Font.FontFamily.HELVETICA, 12, Font.PLAIN));
        localData.setAlignment(Element.ALIGN_RIGHT);
        localData.setSpacingBefore(30.0f);
        localData.setSpacingAfter(10.0f);
        document.add(localData);
        Image assinatura = Image.getInstance(url + "/imagens/assinatura.png");
        assinatura.setAlignment(Element.ALIGN_CENTER);
        assinatura.scaleAbsolute(185, 91);
        document.add(assinatura);
        Paragraph infoEmpresa1 = new Paragraph("AUTO MASTER LTDA",
                new com.itextpdf.text.Font(com.itextpdf.text.Font.FontFamily.HELVETICA, 12, Font.BOLD));
        infoEmpresa1.setAlignment(Element.ALIGN_CENTER);
        infoEmpresa1.setSpacingAfter(1f);
        document.add(infoEmpresa1);
        Paragraph infoEmpresa2 = new Paragraph("___________________________",
                new com.itextpdf.text.Font(com.itextpdf.text.Font.FontFamily.HELVETICA, 12, Font.BOLD));
        infoEmpresa2.setAlignment(Element.ALIGN_CENTER);
        document.add(infoEmpresa2);
        String cnpjEmpresa = formataCNPJ(infoClienteUnidade.get("cnpjUnidade"));
        Paragraph infoEmpresa3 = new Paragraph(cnpjEmpresa,
                new com.itextpdf.text.Font(com.itextpdf.text.Font.FontFamily.HELVETICA, 12, Font.BOLD));
        infoEmpresa3.setAlignment(Element.ALIGN_CENTER);
        document.add(infoEmpresa3);
        document.close();
        // setting some response headers
        response.setHeader("Expires", "0");
        response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
        response.setHeader("Pragma", "public");
        // setting the content type
        response.setContentType("application/pdf");
        response.addHeader("Content-Disposition", "attachment; filename=Historico-" + placa + ".pdf");
        // the contentlength
        response.setContentLength(baos.size());
        // write ByteArrayOutputStream to the ServletOutputStream
        OutputStream os = response.getOutputStream();
        baos.writeTo(os);
        os.flush();
        os.close();
    } catch (DocumentException e) {
        throw new IOException(e.getMessage());
    }
    //        response.setContentType("text/html;charset=UTF-8");
    //        try (PrintWriter out = response.getWriter()) {
    //            /* TODO output your page here. You may use following sample code. */
    //            out.println("<!DOCTYPE html>");
    //            out.println("<html>");
    //            out.println("<head>");
    //            out.println("<title>Servlet PdfServlet</title>");            
    //            out.println("</head>");
    //            out.println("<body>");
    //            out.println("<h1>Servlet PdfServlet at " + request.getContextPath() + "</h1>");
    //            out.println("</body>");
    //            out.println("</html>");
    //        }
}

From source file:com.automated_attendence.servlets.PublishAttendance.java

public void createPdf(String filename, int loop, String course, String dept, String year_id, String semester_id,
        int totalClass) throws DocumentException, IOException {
    // step 1//from w ww .j a  v  a2s.c  o  m
    Document document = new Document();
    // step 2
    PdfWriter.getInstance(document, new FileOutputStream(filename));
    // step 3
    document.open();
    // step 4
    //document.add(new Paragraph("Hello World!"));
    // step 5
    document.addHeader("name", "yeamin");
    document.addTitle("Attendence");
    document.add(new Paragraph(String.format(
            "              ResultSheet of Course id %s,Department %s,Year ID  %s,Semester ID %s :", course,
            dept, year_id, semester_id)));
    document.add(new Paragraph(
            String.format("\n                                                                Total Class : %d ",
                    totalClass)));
    document.add(new Paragraph("      "));
    PdfPTable table = new PdfPTable(2);
    PdfPCell c1;

    c1 = new PdfPCell(new Phrase("Reg no"));
    c1.setHorizontalAlignment(Element.ALIGN_CENTER);
    table.addCell(c1);

    c1 = new PdfPCell(new Phrase("Attendence"));
    c1.setHorizontalAlignment(Element.ALIGN_CENTER);
    table.addCell(c1);
    table.setHeaderRows(1);
    for (int i = 1; i <= loop; ++i) {
        //table.addCell(i+"");
        //table.addCell(i*i+"");
        table.addCell(student_reg_arrary[i]);
        // System.err.println(student_reg_arrary[i]);
        table.addCell(student_present_day[i]);
        // System.err.println(student_present_day[i]);

    }
    //document.addAuthor("me");
    document.add(table);
    document.close();
}

From source file:com.base2.kagura.core.ExportHandler.java

License:Apache License

/**
 * Takes the output and transforms it into a PDF file.
 * @param out Output stream.//from w  w  w  .  ja v a2 s.c  om
 * @param rows Rows of data from reporting-core
 * @param columns Columns to list on report
 */
public void generatePdf(OutputStream out, List<Map<String, Object>> rows, List<ColumnDef> columns) {
    try {
        Document document = new Document();
        PdfWriter.getInstance(document, out);
        if (columns == null) {
            if (rows.size() > 0)
                return;
            columns = new ArrayList<ColumnDef>(CollectionUtils.collect(rows.get(0).keySet(), new Transformer() {
                @Override
                public Object transform(final Object input) {
                    return new ColumnDef() {
                        {
                            setName((String) input);
                        }
                    };
                }
            }));
        }
        if (columns.size() > 14)
            document.setPageSize(PageSize.A1);
        else if (columns.size() > 10)
            document.setPageSize(PageSize.A2);
        else if (columns.size() > 7)
            document.setPageSize(PageSize.A3);
        else
            document.setPageSize(PageSize.A4);
        document.open();
        Font font = FontFactory.getFont(FontFactory.COURIER, 8, Font.NORMAL, BaseColor.BLACK);
        Font headerFont = FontFactory.getFont(FontFactory.COURIER, 8, Font.BOLD, BaseColor.BLACK);

        int size = columns.size();
        PdfPTable table = new PdfPTable(size);
        for (ColumnDef column : columns) {
            PdfPCell c1 = new PdfPCell(new Phrase(column.getName(), headerFont));
            c1.setHorizontalAlignment(Element.ALIGN_CENTER);
            table.addCell(c1);
        }
        table.setHeaderRows(1);
        if (rows != null)
            for (Map<String, Object> row : rows) {
                for (ColumnDef column : columns) {
                    table.addCell(new Phrase(String.valueOf(row.get(column.getName())), font));
                }
            }
        document.add(table);
        document.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:com.bazzar.base.service.impl.CreateInvoicePDF.java

CreateInvoicePDF(Order order) {
    try {/*  ww w  .  j  ava 2 s . c om*/
        Document document = new Document();
        PdfWriter.getInstance(document, new FileOutputStream(FILE));
        document.open();
        addMetaData(document);
        addTitlePage(document);
        addContent(document);
        document.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:com.bdaum.zoom.email.internal.job.PdfJob.java

License:Open Source License

private Document createDocument() {
    Document document = new Document();
    document.addCreationDate();/*from w  w w.j  a v  a 2  s .c om*/
    document.addCreator(Constants.APPLICATION_NAME);
    document.addAuthor(System.getProperty("user.name")); //$NON-NLS-1$
    document.setPageSize(format);
    document.setMargins(Math.max(0, leftMargins - horizontalGap / 2),
            Math.max(0, rightMargins - horizontalGap / 2), topMargins, 0);
    document.setMarginMirroring(layout.getFacingPages());
    return document;
}

From source file:com.bdaum.zoom.ui.internal.dialogs.ExhibitionEditDialog.java

License:Open Source License

private static Document createDocument() {
    Document document = new Document();
    document.addCreationDate();//from   w ww .ja  va2  s  .co  m
    document.addCreator(Constants.APPLICATION_NAME);
    document.addAuthor(System.getProperty("user.name")); //$NON-NLS-1$
    document.setPageSize(PageSize.A4);
    document.setMargins(20, 10, 10, 10);
    return document;
}

From source file:com.biblio.web.rest.PdfResources.java

@RequestMapping(value = "livre", method = RequestMethod.GET)
public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException, WriterException {
    response.setContentType("application/pdf");
    GenerateQRCode ge = new GenerateQRCode();

    try {/*from www.j  a v a 2 s.c  o  m*/

        Document document = new Document();
        String param = request.getParameter("isbn");
        Livre livre = livreRepository.findOneByIsbn(param).get();
        PdfWriter e = PdfWriter.getInstance(document, response.getOutputStream());

        document.open();

        Font font = new Font();

        font.setStyle(Font.BOLD);
        font.setSize(12);

        List list = new List(15);

        //  document.left(12);
        list.add(new ListItem("Titre  :" + livre.getTitre(), font));
        list.add(new ListItem("Categorie  :" + livre.getCategorie().getDescription(), font));
        list.add(new ListItem("Auteurs   :" + livre.getAuteurs(), font));
        list.add(new ListItem("Edition   :" + livre.getEdition(), font));
        list.add(new ListItem("Editeur   :" + livre.getEditeur(), font));
        list.add(new ListItem("Collection   :" + livre.getCollection(), font));
        list.add(new ListItem("Date parution   :" + livre.getDateParution(), font));
        list.add(new ListItem("Isbn   " + livre.getIsbn(), font));
        list.add(new ListItem("Resume   : " + livre.getResume(), font));

        document.add(list);
        document.addTitle(livre.getTitre());
        document.setMargins(100, 20, 0, 0);
        document.addCreationDate();
        System.out.println("TTT v " + document.addTitle(param));
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        ImageIO.write(ge.createQRImage(param, 125), "jpg", baos);
        Image image = Image.getInstance(baos.toByteArray());
        document.add(image);
        document.close();

    } catch (DocumentException de) {
        throw new IOException(de.getMessage());
    }
}

From source file:com.biblio.web.rest.util.PdfBulder.java

public void buildPdf() throws WriterException {
    GenerateQRCode ge = new GenerateQRCode();
    Document document = new Document();
    try {//ww  w .ja v a  2 s .c  om
        ge.createQRImage("ddddd", 125);
        PdfWriter.getInstance(document, new FileOutputStream("Image.pdf"));
        document.open();
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        Image image1 = Image.getInstance("watermark.png");
        ImageIO.write(ge.createQRImage("1254", 0), "jpg", baos);
        Image image = Image.getInstance(baos.toByteArray());
        document.add(image);

        document.close();
    } catch (DocumentException | IOException e) {
    }
}

From source file:com.bicitools.dao.RutasDAODecorador.java

@Override
public RespuestaJson exportarRutasUsuario(String usuario, String fechaIni, String fechaFin, String archivo) {
    Ruta r = new Ruta();

    RespuestaJson res = new RespuestaJson();
    res = getRutasDAO().exportarRutasUsuario(usuario, fechaIni, fechaFin, archivo);
    Vector qresul = null;//from w  ww .j a  v  a  2  s  .  com
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    Date fechaUno, fechaDos;
    try {
        fechaUno = formatter.parse(fechaIni);
        fechaDos = formatter.parse(fechaFin);
    } catch (ParseException ex) {
        String inputStr = "01-01-1900 00:00:00";
        DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
        try {
            fechaUno = dateFormat.parse(inputStr);
        } catch (Exception miex) {
            fechaUno = new java.util.Date();
        }
        fechaDos = new java.util.Date();
    }

    try {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("com.bicitools_unit");
        EntityManager ema = emf.createEntityManager();

        Query query = ema.createNamedQuery("Ruta.findByUsuarioFechas");
        query.setParameter("usuario", usuario);
        query.setParameter("fechaIni", fechaUno, TemporalType.TIMESTAMP);
        query.setParameter("fechaFin", fechaDos, TemporalType.TIMESTAMP);
        qresul = (Vector) query.getResultList();

        if (qresul.size() > 0) {
            int i = 0;
            ArrayList<DatosRutasReportesJson> rta = new ArrayList<DatosRutasReportesJson>();

            // Se crea el documento
            Document documento = new Document();

            // Se crea el OutputStream para el fichero donde queremos dejar el pdf.
            FileOutputStream ficheroPdf = null;
            //ficheroPdf = new FileOutputStream("/Users/jhony/Documents/Uni Andes/Fabricas/Bicitools/bicitools/reporte.pdf");

            DateFormat dateFormat = new SimpleDateFormat("ddMMyyyy_HHmmss");
            Date fechaReporte = new Date();

            ficheroPdf = new FileOutputStream(
                    archivo + "/Reporte_Rutas_" + usuario + "_" + dateFormat.format(fechaReporte) + ".pdf");

            // Se asocia el documento al OutputStream y se indica que el espaciado entre
            // lineas sera de 20. Esta llamada debe hacerse antes de abrir el documento
            PdfWriter.getInstance(documento, ficheroPdf).setInitialLeading(20);

            // Se abre el documento.
            documento.open();

            documento.add(new Paragraph("Reporte de Rutas para " + usuario));
            documento.add(new Paragraph(" "));

            Date fechaSalida = fechaUno;

            // Create an instance of SimpleDateFormat used for formatting
            DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String reportDate = df.format(fechaSalida);
            documento.add(new Paragraph("Fecha Inicial: " + reportDate));
            fechaSalida = fechaDos;
            reportDate = df.format(fechaSalida);
            documento.add(new Paragraph("Fecha Final: " + reportDate));

            documento.add(new Paragraph(" "));
            documento.add(new Paragraph(" "));
            PdfPTable tabla = new PdfPTable(4);
            tabla.addCell("Fecha");
            tabla.addCell("Nombre Ruta");
            tabla.addCell("Tiempo");
            tabla.addCell("Distancia");

            for (i = 0; i < qresul.size(); i++) {
                Ruta miRuta = (Ruta) qresul.get(i);

                fechaSalida = miRuta.getFechaCreacion();

                // Create an instance of SimpleDateFormat used for formatting
                df = new SimpleDateFormat("yyyy-MM-dd");

                reportDate = df.format(fechaSalida);

                tabla.addCell(reportDate);

                RutaPunto puntos = new RutaPunto();
                DatosRutasReportesJson rutaSalida = new DatosRutasReportesJson();
                //ruta

                tabla.addCell(miRuta.getNombre());

                ArrayList<DatosLugaresJson> lugares = obtenerPuntosRutaUsuario(miRuta.getNombre());
                rutaSalida.setLugares(lugares);

                RutaPunto puntoUno = new RutaPunto();
                RutaPunto puntoDos = new RutaPunto();

                //ruta 1
                rutaSalida.setNombre(miRuta.getNombre());

                rutaSalida.setFechaHora(miRuta.getFechaCreacion().toString());

                //obtiene primer y ultimo punto
                puntoUno = obtenerPuntoRutaIndiceUsuario(miRuta.getNombre(), 0);
                puntoDos = obtenerPuntoRutaIndiceUsuario(miRuta.getNombre(), -1);

                if (puntoUno != null && puntoDos != null) {

                    //consumeServicio Tiempo y distancia
                    final Gson prettyGson = new GsonBuilder().setPrettyPrinting().create();
                    DatosConsumoPuntoRutaJson entrada = new DatosConsumoPuntoRutaJson();

                    entrada.setLatitudOrigen(Double.parseDouble(puntoUno.getLatitud()));
                    entrada.setLongitudOrigen(Double.parseDouble(puntoUno.getLongitud()));
                    entrada.setLatitudDestino(Double.parseDouble(puntoDos.getLatitud()));
                    entrada.setLongitudDestino(Double.parseDouble(puntoDos.getLongitud()));
                    final String representacionBonita = prettyGson.toJson(entrada);

                    res = ConsumeServicios.consumeTiempoDist(representacionBonita);

                    if (res.getCodigo() == 0) {

                        ArrayList<TiempoDistanciaInfo> datos = new ArrayList<>();
                        TiempoDistanciaInfo infoRuta = new TiempoDistanciaInfo();
                        datos = res.getDatos();
                        infoRuta = (TiempoDistanciaInfo) datos.get(0);

                        tabla.addCell(infoRuta.getTiempo().replace("\"", ""));
                        tabla.addCell(infoRuta.getDistancia().replace("\"", ""));
                        //rutaSalida.setDistancia(infoRuta.getDistancia());
                        //rutaSalida.setTiempo(infoRuta.getTiempo());

                        //rta.add(rutaSalida);
                        //res.setDatos(rta);
                    }
                } else {
                    tabla.addCell("ND");
                    tabla.addCell("ND");
                }
            }

            documento.add(tabla);

            documento.add(new Paragraph(" "));
            try {
                Image foto = Image.getInstance(
                        "http://1.bp.blogspot.com/-fV-ThFg9bN0/UCr4VMFrJ-I/AAAAAAAAEYQ/-_vIDIYDLz8/s1600/dibujo-pintar-doki-bicicleta.jpg");
                foto.scaleToFit(100, 100);
                foto.setAlignment(Chunk.ALIGN_CENTER);
                documento.add(foto);
            } catch (IOException | DocumentException e) {
            }
            res = ConstruyeRespuesta.construyeRespuestaOk();

            documento.close();
        } else {
            res = ConstruyeRespuesta.construyeRespuestaFalla("no hay datos " + qresul.size());
        }

    } catch (FileNotFoundException | DocumentException | NumberFormatException ex) {
        res = ConstruyeRespuesta.construyeRespuestaFalla("error " + ex.getMessage());

    }

    //res.setDescripcion("numero de datos devueltos " + qresul.size());
    return res;
}

From source file:com.bicitools.dao.RutasDAODecorador.java

@Override
public RespuestaJson exportarRecorridosUsuario(String usuario, String fechaIni, String fechaFin,
        String archivo) {// w  ww  .ja va2  s . c  om

    RespuestaJson res = new RespuestaJson();
    res = getRutasDAO().exportarRecorridosUsuario(usuario, fechaIni, fechaFin, archivo);
    Ruta r = new Ruta();

    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    Date fechaUno, fechaDos;
    try {
        fechaUno = formatter.parse(fechaIni);
        fechaDos = formatter.parse(fechaFin);
    } catch (ParseException ex) {
        String inputStr = "01-01-1900 00:00:00";
        DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
        try {
            fechaUno = dateFormat.parse(inputStr);
        } catch (Exception miex) {
            fechaUno = new java.util.Date();
        }
        fechaDos = new java.util.Date();
    }

    Query query = em.createNamedQuery("LogUsuario.findRecorridos");
    query.setParameter("usuario", usuario);
    query.setParameter("fechaIni", fechaUno, TemporalType.TIMESTAMP);
    query.setParameter("fechaFin", fechaDos, TemporalType.TIMESTAMP);
    Vector qresul = (Vector) query.getResultList();

    if (qresul.size() > 0) {
        try {
            int i;
            ArrayList<DatosRutasReportesJson> rta = new ArrayList<>();

            Document documento = new Document();

            // Se crea el OutputStream para el fichero donde queremos dejar el pdf.
            FileOutputStream ficheroPdf = null;
            //ficheroPdf = new FileOutputStream("/Users/jhony/Documents/Uni Andes/Fabricas/Bicitools/bicitools/reporte.pdf");

            DateFormat dateFormat = new SimpleDateFormat("ddMMyyyy_HHmmss");
            Date fechaReporte = new Date();

            ficheroPdf = new FileOutputStream(archivo + "/Reporte_Recorridos_" + usuario + "_"
                    + dateFormat.format(fechaReporte) + ".pdf");

            // Se asocia el documento al OutputStream y se indica que el espaciado entre
            // lineas sera de 20. Esta llamada debe hacerse antes de abrir el documento
            PdfWriter.getInstance(documento, ficheroPdf).setInitialLeading(20);

            // Se abre el documento.
            documento.open();

            documento.add(new Paragraph("Reporte de Recorridos para " + usuario));
            documento.add(new Paragraph(" "));

            Date fechaSalida = fechaUno;

            // Create an instance of SimpleDateFormat used for formatting
            DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String reportDate = df.format(fechaSalida);
            documento.add(new Paragraph("Fecha Inicial: " + reportDate));
            fechaSalida = fechaDos;
            reportDate = df.format(fechaSalida);
            documento.add(new Paragraph("Fecha Final: " + reportDate));

            documento.add(new Paragraph(" "));
            documento.add(new Paragraph(" "));
            PdfPTable tabla = new PdfPTable(4);

            tabla.addCell("Fecha");
            tabla.addCell("Tiempo");
            tabla.addCell("Distancia");
            tabla.addCell("Ruta");

            for (i = 0; i < qresul.size(); i++) {
                Object[] obj = (Object[]) qresul.get(i);
                //LogUsuario datosRecorrido = (LogUsuario) qresul.get(i);

                RutaPunto puntos = new RutaPunto();
                //DatosRutasReportesJson rutaSalida = new DatosRutasReportesJson();

                Date fechaInicio = (Date) obj[1];
                String nombreRecorrido = (String) obj[0];

                if (nombreRecorrido.isEmpty()) {
                    nombreRecorrido = "Recorrido_" + (i + 1);
                }

                //rutaSalida.setNombre(nombreRecorrido);
                //rutaSalida.setFechaHora(fechaInicio.toString());
                fechaSalida = fechaInicio;
                // Create an instance of SimpleDateFormat used for formatting
                df = new SimpleDateFormat("yyyy-MM-dd");
                reportDate = df.format(fechaSalida);
                tabla.addCell(reportDate);

                TiempoDistanciaInfo distRecorrido = obtenerTiempoDistanciaRecorrido((String) obj[2],
                        (Date) obj[1], (String) obj[0]);
                //rutaSalida.setDistancia(distRecorrido.getDistancia());
                //rutaSalida.setTiempo(distRecorrido.getTiempo());

                tabla.addCell(distRecorrido.getTiempo().replace("\"", ""));
                tabla.addCell(distRecorrido.getDistancia().replace("\"", ""));
                tabla.addCell(nombreRecorrido);
                /*ArrayList<DatosLugaresJson> lugares = obtenerPuntosRecorrido(
                 (String) obj[2],
                 (Date) obj[1],
                 (String) obj[0]);
                        
                        
                 rutaSalida.setLugares(lugares);
                 rta.add(rutaSalida);*/

            }

            documento.add(tabla);
            documento.add(new Paragraph(" "));
            try {
                Image foto = Image.getInstance(
                        "http://1.bp.blogspot.com/-fV-ThFg9bN0/UCr4VMFrJ-I/AAAAAAAAEYQ/-_vIDIYDLz8/s1600/dibujo-pintar-doki-bicicleta.jpg");
                foto.scaleToFit(100, 100);
                foto.setAlignment(Chunk.ALIGN_CENTER);
                documento.add(foto);
            } catch (IOException | DocumentException e) {
            }

            res = ConstruyeRespuesta.construyeRespuestaOk();
            documento.close();

            //res.setDatos(rta);
        } catch (FileNotFoundException ex) {
            Logger.getLogger(RutasDAO.class.getName()).log(Level.SEVERE, null, ex);
        } catch (DocumentException ex) {
            Logger.getLogger(RutasDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
    } else {
        res = ConstruyeRespuesta.construyeRespuestaFalla("no hay datos " + qresul.size());
    }

    res.setDescripcion("numero de datos devueltos " + qresul.size());
    return res;

}