Example usage for com.itextpdf.text Document open

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

Introduction

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

Prototype

boolean open

To view the source code for com.itextpdf.text Document open.

Click Source Link

Document

Is the document open or not?

Usage

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 www  . j  a v  a 2  s  . co m*/
 * @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 {// w w w  . j a v  a2 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 void writeDocument(Document document, MultiStatus status, IProgressMonitor monitor) {
    try (FileOutputStream out = new FileOutputStream(targetFile)) {
        PdfWriter.getInstance(document, out);
        document.open();
        for (int i = 0; i < pages; i++) {
            printPage(document, i + 1, status, monitor);
            if (monitor.isCanceled()) {
                status.add(new Status(IStatus.WARNING, Activator.PLUGIN_ID,
                        Messages.PdfJob_pdf_creation_cancelled));
                break;
            }/*  w  ww. ja va  2 s .c o  m*/
        }
        document.close();
    } catch (FileNotFoundException e) {
        // should not happen
    } catch (DocumentException e) {
        status.add(
                new Status(IStatus.ERROR, Activator.PLUGIN_ID, Messages.PdfJob_internal_error_when_writing, e));
    } catch (IOException e) {
        status.add(new Status(IStatus.ERROR, Activator.PLUGIN_ID, Messages.PdfJob_io_error_when_writing, e));
    } finally {
        fileWatcher.stopIgnoring(opId);
    }
}

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

License:Open Source License

private void writeDocument(Document document, File targetFile) {
    boolean frame = detailTabfolder.getSelectionIndex() == 1;
    try (FileOutputStream out = new FileOutputStream(targetFile)) {
        PdfWriter writer = PdfWriter.getInstance(document, out);
        document.open();
        writer.setPageEvent(new PdfPageEventHelper() {
            int pageNo = 0;
            com.itextpdf.text.Font ffont = new com.itextpdf.text.Font(
                    com.itextpdf.text.Font.FontFamily.HELVETICA, 9, com.itextpdf.text.Font.NORMAL,
                    BaseColor.DARK_GRAY);

            @Override//from w  w w. ja v a  2 s . c  o m
            public void onEndPage(PdfWriter w, Document d) {
                PdfContentByte cb = w.getDirectContent();
                Phrase footer = new Phrase(String.valueOf(++pageNo), ffont);
                ColumnText.showTextAligned(cb, Element.ALIGN_CENTER, footer,
                        (document.right() - document.left()) / 2 + document.leftMargin(), document.bottom(), 0);
            }
        });
        String tit = NLS.bind(Messages.ExhibitionEditDialog_exhibition_name, nameField.getText());
        Paragraph p = new Paragraph(tit,
                FontFactory.getFont(FontFactory.HELVETICA, 14, com.itextpdf.text.Font.BOLD, BaseColor.BLACK));
        p.setAlignment(Element.ALIGN_CENTER);
        p.setSpacingAfter(8);
        document.add(p);
        String subtitle = NLS.bind(Messages.ExhibitionEditDialog_image_list, Constants.DFDT.format(new Date()),
                frame ? Messages.ExhibitionEditDialog_image_sizes : Messages.ExhibitionEditDialog_frame_sizes);
        p = new Paragraph(subtitle,
                FontFactory.getFont(FontFactory.HELVETICA, 10, com.itextpdf.text.Font.NORMAL, BaseColor.BLACK));
        p.setAlignment(Element.ALIGN_CENTER);
        p.setSpacingAfter(14);
        document.add(p);
        p = new Paragraph(descriptionField.getText(),
                FontFactory.getFont(FontFactory.HELVETICA, 10, com.itextpdf.text.Font.NORMAL, BaseColor.BLACK));
        p.setAlignment(Element.ALIGN_CENTER);
        p.setSpacingAfter(10);
        document.add(p);
        p = new Paragraph(infoField.getText(),
                FontFactory.getFont(FontFactory.HELVETICA, 10, com.itextpdf.text.Font.NORMAL, BaseColor.BLACK));
        p.setAlignment(Element.ALIGN_CENTER);
        p.setSpacingAfter(10);
        document.add(p);
        IDbManager db = Core.getCore().getDbManager();
        List<Wall> walls = current.getWall();
        Wall[] sortedWalls = walls.toArray(new Wall[walls.size()]);
        Arrays.sort(sortedWalls, new Comparator<Wall>() {
            public int compare(Wall o1, Wall o2) {
                return o1.getLocation().compareToIgnoreCase(o2.getLocation());
            }
        });
        for (Wall wall : sortedWalls) {
            p = new Paragraph(wall.getLocation(), FontFactory.getFont(FontFactory.HELVETICA, 12,
                    com.itextpdf.text.Font.BOLD, BaseColor.BLACK));
            p.setAlignment(Element.ALIGN_LEFT);
            p.setSpacingAfter(12);
            document.add(p);
            PdfPTable table = new PdfPTable(7);
            // table.setBorderWidth(1);
            // table.setBorderColor(new Color(224, 224, 224));
            // table.setPadding(5);
            // table.setSpacing(0);
            table.setWidths(new int[] { 8, 33, 13, 13, 20, 13, 20 });
            table.addCell(createTableHeader(Messages.ExhibitionEditDialog_No, Element.ALIGN_RIGHT));
            table.addCell(createTableHeader(Messages.ExhibitionEditDialog_title, Element.ALIGN_LEFT));
            table.addCell(createTableHeader(Messages.ExhibitionEditDialog_xpos, Element.ALIGN_RIGHT));
            table.addCell(createTableHeader(Messages.ExhibitionEditDialog_height, Element.ALIGN_RIGHT));
            table.addCell(createTableHeader(Messages.ExhibitionEditDialog_size, Element.ALIGN_RIGHT));
            table.addCell(createTableHeader(Messages.ExhibitionEditDialog_dpi, Element.ALIGN_RIGHT));
            table.addCell(createTableHeader("", Element.ALIGN_LEFT)); //$NON-NLS-1$
            // table.endHeaders();
            List<ExhibitImpl> exhibits = new ArrayList<ExhibitImpl>();
            for (String exhibitId : wall.getExhibit()) {
                ExhibitImpl exhibit = db.obtainById(ExhibitImpl.class, exhibitId);
                if (exhibit != null)
                    exhibits.add(exhibit);
            }
            Collections.sort(exhibits, new Comparator<ExhibitImpl>() {
                public int compare(ExhibitImpl e1, ExhibitImpl e2) {
                    return ((Exhibit) e1).getX() - ((Exhibit) e2).getX();
                }
            });
            int no = 1;
            for (ExhibitImpl exhibit : exhibits) {
                int tara = computeTara(frame, exhibit);
                table.addCell(createTableCell(String.valueOf(no++), Element.ALIGN_RIGHT));
                table.addCell(createTableCell(exhibit.getTitle(), Element.ALIGN_LEFT));
                af.setMaximumFractionDigits(2);
                af.setMinimumFractionDigits(2);
                String x = af.format((exhibit.getX() - tara) / 1000d);
                table.addCell(createTableCell(NLS.bind("{0} m", x), Element.ALIGN_RIGHT)); //$NON-NLS-1$
                String y = af.format((exhibit.getY() + tara) / 1000d);
                table.addCell(createTableCell(NLS.bind("{0} m", y), Element.ALIGN_RIGHT)); //$NON-NLS-1$
                af.setMaximumFractionDigits(1);
                af.setMinimumFractionDigits(1);
                String h = af.format((exhibit.getHeight() + 2 * tara) / 10d);
                int width = exhibit.getWidth();
                String w = af.format((width + 2 * tara) / 10d);
                table.addCell(createTableCell(NLS.bind("{0} x {1} cm", w, h), Element.ALIGN_RIGHT)); //$NON-NLS-1$
                AssetImpl asset = dbManager.obtainAsset(exhibit.getAsset());
                if (asset != null) {
                    int pixels = asset.getWidth();
                    double dpi = pixels * 25.4d / width;
                    table.addCell(createTableCell(String.valueOf((int) dpi), Element.ALIGN_RIGHT));
                } else
                    table.addCell(""); //$NON-NLS-1$
                table.addCell(createTableCell(exhibit.getSold() ? Messages.ExhibitionEditDialog_sold : "", //$NON-NLS-1$
                        Element.ALIGN_LEFT));
            }
            document.add(table);
        }
        document.close();
    } catch (DocumentException e) {
        UiActivator.getDefault().logError(Messages.ExhibitionEditDialog_internal_error_writing_pdf, e);
    } catch (IOException e) {
        UiActivator.getDefault().logError(Messages.ExhibitionEditDialog_io_error_writing_pdf, e);
    }
}

From source file:com.betel.flowers.pdf.util.RemoveBlankPageFromPDF.java

public static void removeBlankPdfPages(String source, String destination)
        throws IOException, DocumentException {
    PdfReader r = null;/*from   ww  w. ja  v a  2s  .co m*/
    RandomAccessSourceFactory rasf = null;
    RandomAccessFileOrArray raf = null;
    Document document = null;
    PdfCopy writer = null;

    try {
        r = new PdfReader(source);
        // deprecated
        //    RandomAccessFileOrArray raf
        //           = new RandomAccessFileOrArray(pdfSourceFile);
        // itext 5.4.1
        rasf = new RandomAccessSourceFactory();
        raf = new RandomAccessFileOrArray(rasf.createBestSource(source));
        document = new Document(r.getPageSizeWithRotation(1));
        writer = new PdfCopy(document, new FileOutputStream(destination));
        document.open();
        PdfImportedPage page = null;

        for (int i = 1; i <= r.getNumberOfPages(); i++) {
            // first check, examine the resource dictionary for /Font or
            // /XObject keys.  If either are present -> not blank.
            PdfDictionary pageDict = r.getPageN(i);
            PdfDictionary resDict = (PdfDictionary) pageDict.get(PdfName.RESOURCES);
            boolean noFontsOrImages = true;
            if (resDict != null) {
                noFontsOrImages = resDict.get(PdfName.FONT) == null && resDict.get(PdfName.XOBJECT) == null;
            }

            if (!noFontsOrImages) {
                byte bContent[] = r.getPageContent(i, raf);
                ByteArrayOutputStream bs = new ByteArrayOutputStream();
                bs.write(bContent);

                if (bs.size() > BLANK_THRESHOLD) {
                    page = writer.getImportedPage(r, i);
                    writer.addPage(page);
                }
            }
        }
    } finally {
        if (document != null) {
            document.close();
        }
        if (writer != null) {
            writer.close();
        }
        if (raf != null) {
            raf.close();
        }
        if (r != null) {
            r.close();
        }
    }
}

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 {/* w  w w  .  ja va  2 s.co 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 {//w  ww.j  av  a 2 s  .  c o m
        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) {/*from   w w w  . jav a2 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;

}

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

@Override
public RespuestaJson exportarRecorridosRuta(String usuario, String fechaIni, String fechaFin, String archivo) {

    Ruta r = new Ruta();
    RespuestaJson res = new RespuestaJson();
    res = getRutasDAO().exportarRecorridosRuta(usuario, fechaIni, fechaFin, archivo);
    Vector qresul = null;//from  w  w  w  .  j a v a 2 s  . c  o  m
    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 {

        Query query = em.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;
            ArrayList rta = new ArrayList();

            // 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_RutasRecorridos_" + 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 por Ruta 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(" "));

            for (i = 0; i < qresul.size(); i++) {
                PdfPTable tabla = new PdfPTable(3);

                Ruta miRuta = (Ruta) qresul.get(i);
                RutaPunto puntos = new RutaPunto();
                DatosRutasRecorridosJson rutaSalida = new DatosRutasRecorridosJson();
                //ruta

                //ArrayList<DatosLugaresJson> lugares = obtenerPuntosRutaUsuario(miRuta.getNombre());
                //rutaSalida.setLugares(lugares);
                RutaPunto puntoUno;
                RutaPunto puntoDos;

                //ruta 1
                rutaSalida.setNombre(miRuta.getNombre());
                // Create an instance of SimpleDateFormat used for formatting 
                df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

                rutaSalida.setFechaHora(df.format(miRuta.getFechaCreacion()));

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

                //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;
                    TiempoDistanciaInfo infoRuta;

                    datos = res.getDatos();

                    infoRuta = (TiempoDistanciaInfo) datos.get(0);

                    //rutaSalida.setDistancia(infoRuta.getDistancia().replace("\"",""));
                    //rutaSalida.setTiempo(infoRuta.getTiempo().replace("\"",""));
                    documento.add(new Paragraph("Nombre: " + miRuta.getNombre()));
                    documento.add(
                            new Paragraph("Distancia calculada: " + infoRuta.getDistancia().replace("\"", "")));
                    documento.add(new Paragraph("Tiempo estimado: " + infoRuta.getTiempo().replace("\"", "")));
                    documento.add(new Paragraph("-------Recorridos-----"));
                    documento.add(new Paragraph(" "));
                    tabla.addCell(infoRuta.getDistancia().replace("\"", ""));
                    tabla.addCell(infoRuta.getTiempo().replace("\"", ""));

                    rutaSalida.setRecorridos(obtenerRecoRuta(usuario, fechaIni, fechaFin, miRuta.getNombre()));
                    documento.add(new Paragraph("---------------------"));
                    documento.add(new Paragraph(" "));
                    rta.add(rutaSalida);
                    res = ConstruyeRespuesta.construyeRespuestaOk();
                    //res.setDatos(rta);

                    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) {
            }
            documento.close();

        } else {
            res = ConstruyeRespuesta.construyeRespuestaFalla("no hay datos " + qresul.size());
        }
    } catch (Exception ex) {
        res = ConstruyeRespuesta.construyeRespuestaFalla("error " + ex.getMessage());

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