List of usage examples for com.itextpdf.text Document add
public boolean add(Element element) throws DocumentException
Element
to the Document
. 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; }