Example usage for com.itextpdf.text Document add

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

Introduction

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

Prototype


public boolean add(Element element) throws DocumentException 

Source Link

Document

Adds an Element to the Document.

Usage

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.  ja  va  2 s .  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./* w  ww.j a  va2  s . com*/
 * @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

private static void addContent(Document document) throws DocumentException {
    Anchor anchor = new Anchor("First Chapter", catFont);
    anchor.setName("First Chapter");

    // Second parameter is the number of the chapter
    Chapter catPart = new Chapter(new Paragraph(anchor), 1);

    Paragraph subPara = new Paragraph("Subcategory 1", subFont);
    Section subCatPart = catPart.addSection(subPara);
    subCatPart.add(new Paragraph("Hello"));

    subPara = new Paragraph("Subcategory 2", subFont);
    subCatPart = catPart.addSection(subPara);
    subCatPart.add(new Paragraph("Paragraph 1"));
    subCatPart.add(new Paragraph("Paragraph 2"));
    subCatPart.add(new Paragraph("Paragraph 3"));

    // Add a list
    createList(subCatPart);//from  w ww  . ja va 2 s .  c  o m
    Paragraph paragraph = new Paragraph();
    addEmptyLine(paragraph, 5);
    subCatPart.add(paragraph);

    // Add a table
    createTable(subCatPart);

    // Now add all this to the document
    document.add(catPart);

    // Next section
    anchor = new Anchor("Second Chapter", catFont);
    anchor.setName("Second Chapter");

    // Second parameter is the number of the chapter
    catPart = new Chapter(new Paragraph(anchor), 1);

    subPara = new Paragraph("Subcategory", subFont);
    subCatPart = catPart.addSection(subPara);
    subCatPart.add(new Paragraph("This is a very important message"));

    // Now add all this to the document
    document.add(catPart);

}

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

License:Open Source License

private void printPage(Document document, int pageNo, MultiStatus status, IProgressMonitor monitor)
        throws DocumentException, IOException {
    if (pageNo > 1)
        document.newPage();//from ww  w  .jav  a2s .  co  m
    document.setPageCount(pageNo);
    final Display display = Display.getDefault();
    int pageItem = 0;
    if (!layout.getTitle().isEmpty()) {
        String title = PageProcessor.computeTitle(layout.getTitle(), fileName, now, assets.size(), pageNo,
                pages, collection, meta);
        Paragraph p = new Paragraph(title,
                FontFactory.getFont(FontFactory.HELVETICA, titleSize, Font.BOLD, BaseColor.DARK_GRAY));
        p.setAlignment(Element.ALIGN_CENTER);
        p.setSpacingAfter(layout.getSubtitle().isEmpty() ? titleLead + upperWaste : titleLead);
        document.add(p);
    }
    if (!layout.getSubtitle().isEmpty()) {
        String subtitle = PageProcessor.computeTitle(layout.getSubtitle(), fileName, now, assets.size(), pageNo,
                pages, collection, meta);
        Paragraph p = new Paragraph(subtitle,
                FontFactory.getFont(FontFactory.HELVETICA, subtitleSize, Font.NORMAL, BaseColor.DARK_GRAY));
        p.setAlignment(Element.ALIGN_CENTER);
        p.setSpacingAfter(subtitleLead + upperWaste);
        document.add(p);
    }
    IVolumeManager vm = Core.getCore().getVolumeManager();
    PdfPTable table = new PdfPTable(layout.getColumns());
    try (Assetbox box = new Assetbox(null, status, false)) {
        for (int i = 0; i < rows; i++) {
            int ni = i * layout.getColumns();
            for (int j = 0; j < layout.getColumns(); j++) {
                int a = (pageNo - 1) * imagesPerPage + ni + j;
                PdfPCell cell;
                if (a >= assets.size() || monitor.isCanceled())
                    cell = new PdfPCell();
                else {
                    final int dpi = quality == Constants.SCREEN_QUALITY ? SCREENDPI : PRINTERDPI;
                    final int pixelWidth = (int) (imageWidth * dpi / 72);
                    final int pixelHeight = (int) (imageHeight * dpi / 72);
                    Asset asset = assets.get(a);
                    zimage = new ZImage(ImageUtilities.loadThumbnail(display, asset.getJpegThumbnail(), cms,
                            SWT.IMAGE_JPEG, true), null);
                    org.eclipse.swt.graphics.Rectangle bounds = zimage.getBounds();
                    URI uri = vm.findExistingFile(asset, false);
                    if (uri != null) {
                        boolean r = asset.getRotation() % 180 != 0;
                        double w = r ? asset.getHeight() : asset.getWidth();
                        double h = r ? asset.getWidth() : asset.getHeight();
                        double scale = w == 0 || h == 0 ? 1d : Math.min(pixelWidth / w, pixelHeight / h);
                        scale = (scale <= 0.5d) ? 0.5d : 1d;
                        File file = box.obtainFile(uri);
                        if (file != null)
                            try {
                                ZImage hzimage = CoreActivator.getDefault().getHighresImageLoader().loadImage(
                                        null, status, file, asset.getRotation(),
                                        asset.getFocalLengthIn35MmFilm(), null, scale, Double.MAX_VALUE, true,
                                        ImageConstants.SRGB, null, unsharpMask, null, fileWatcher, opId, null);
                                if (hzimage != null) {
                                    zimage.dispose();
                                    zimage = hzimage;
                                }
                            } catch (UnsupportedOperationException e) {
                                // do nothing
                            }
                    }
                    display.syncExec(() -> {
                        int kl = (keyLine > 0) ? (int) Math.max(1, (keyLine * dpi / 144)) : 0;
                        org.eclipse.swt.graphics.Rectangle ibounds = zimage.getBounds();
                        double factor = Math.min((double) pixelWidth / ibounds.width,
                                (double) pixelHeight / ibounds.height);
                        int lw = pixelWidth + 2 * kl;
                        int lh = pixelHeight + 2 * kl;
                        Image newImage = new Image(display, lw, lh);
                        GC gc = new GC(newImage);
                        try {
                            gc.setAntialias(SWT.ON);
                            gc.setInterpolation(SWT.HIGH);
                            gc.setAdvanced(true);
                            gc.setBackground(display.getSystemColor(SWT.COLOR_WHITE));
                            gc.fillRectangle(0, 0, lw, lh);
                            int width = (int) (ibounds.width * factor + 2 * kl);
                            int height = (int) (ibounds.height * factor + 2 * kl);
                            int xoff = (lw - width) / 2;
                            int yoff = (lh - height) / 2;
                            if (kl > 0) {
                                gc.setBackground(display.getSystemColor(SWT.COLOR_DARK_GRAY));
                                gc.fillRectangle(xoff, yoff, width, height);
                            }
                            zimage.draw(gc, 0, 0, ibounds.width, ibounds.height, xoff + kl, yoff + kl,
                                    width - 2 * kl, height - 2 * kl, ZImage.CROPPED, pixelWidth, pixelHeight,
                                    false);
                        } finally {
                            gc.dispose();
                            zimage.dispose();
                            zimage = new ZImage(newImage, null);
                        }
                    });
                    bounds = zimage.getBounds();
                    File jpegFile = ImageActivator.getDefault().createTempFile("PdfImg", ".jpg"); //$NON-NLS-1$//$NON-NLS-2$
                    tempFiles.add(jpegFile);
                    try (FileOutputStream out = new FileOutputStream(jpegFile)) {
                        zimage.saveToStream(monitor, true, ZImage.UNCROPPED, SWT.DEFAULT, SWT.DEFAULT, out,
                                SWT.IMAGE_JPEG, jpegQuality);
                    }
                    zimage.dispose();
                    com.itextpdf.text.Image pdfImage = com.itextpdf.text.Image.getInstance(jpegFile.getPath());
                    double factor = Math.min(imageWidth / bounds.width, imageHeight / bounds.height);
                    pdfImage.setInterpolation(true);
                    pdfImage.scaleToFit((float) (bounds.width * factor), (float) (bounds.height * factor));
                    cell = new PdfPCell(pdfImage, false);
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                    monitor.worked(1);
                }
                cell.setFixedHeight((float) imageHeight);
                cell.setBorderWidth(0);
                table.addCell(cell);
            }
            renderCaptions(pageNo, seqNo, pageItem, table, ni, layout.getCaption1());
            renderCaptions(pageNo, seqNo, pageItem, table, ni, layout.getCaption2());
            pageItem += layout.getColumns();
            seqNo += layout.getColumns();
            if (verticalGap > 0 && i < rows - 1)
                for (int j = 0; j < layout.getColumns(); j++) {
                    PdfPCell cell = new PdfPCell();
                    cell.setFixedHeight(verticalGap);
                    cell.setBorderWidth(0);
                    table.addCell(cell);
                }
        }
        table.setWidthPercentage(100f);
        document.add(table);
        if (!layout.getFooter().isEmpty()) {
            String footer = PageProcessor.computeTitle(layout.getFooter(), fileName, now, assets.size(), pageNo,
                    pages, collection, meta);
            Paragraph p = new Paragraph(footer,
                    FontFactory.getFont(FontFactory.HELVETICA, subtitleSize, Font.NORMAL, BaseColor.DARK_GRAY));
            p.setAlignment(Element.ALIGN_CENTER);
            p.setSpacingBefore(upperWaste / 2 + footerLead);
            document.add(p);
        }
    }
}

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();//from ww w .ja  v a  2  s . c o m
        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
            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.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 {//  ww w . 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 {/*from  www.j a  v  a2s . co 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.RutasDAO.java

public ArrayList obtenerRecoRuta(String usuario, String fechaIni, String fechaFin, String ruta, Document doc) {
    Ruta r = new Ruta();

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

    Date fechaUno, fechaDos;/*w ww . ja  v a  2 s . c  om*/
    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();
    }

    ArrayList res = new ArrayList();
    Query query = em.createNamedQuery("LogUsuario.findRecorridosRuta");
    query.setParameter("usuario", usuario);
    query.setParameter("fechaIni", fechaUno, TemporalType.TIMESTAMP);
    query.setParameter("fechaFin", fechaDos, TemporalType.TIMESTAMP);
    query.setParameter("rutaActual", ruta);
    Vector qresul = (Vector) query.getResultList();

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

            PdfPTable tabla = new PdfPTable(3);

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

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

                RutaPunto puntos = new RutaPunto();
                DatosRutasJson rutaSalida = new DatosRutasJson();

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

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

                rutaSalida.setNombre(nombreRecorrido);

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

                rutaSalida.setFechaHora(df.format(fechaInicio));

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

                /*ArrayList<DatosLugaresJson> lugares = obtenerPuntosRecorrido(
                 (String) obj[2],
                 (Date) obj[1],
                 (String) obj[0]);*/
                //rutaSalida.setLugares(lugares);
                rta.add(rutaSalida);

                tabla.addCell(df.format(fechaInicio));
                tabla.addCell(distRecorrido.getDistancia().replace("\"", ""));
                tabla.addCell(distRecorrido.getDistancia().replace("\"", ""));

            }
            doc.add(tabla);

            //res = ConstruyeRespuesta.construyeRespuestaOk();
            res.add(rta);
        } catch (DocumentException ex) {
            Logger.getLogger(RutasDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
    } else {
        res = null;
    }

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

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 w w. j av a2  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 {
        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  ww  . j  a v  a2s .  c  o m*/

    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;

}