List of usage examples for org.jfree.chart.encoders EncoderUtil encode
public static byte[] encode(BufferedImage image, String format) throws IOException
From source file:biblioteca.database2.controladores.ControladorEstadisticas.java
public ArrayList<Element> estadisticasDocumentosDescargados(String dow, String dom, String month, String year, String tipo_usuario, String[] franja, String[] desde, String[] hasta, String area, String autor, String doc_tipo, String usuario, boolean todos, int salida) throws BadElementException, MalformedURLException, IOException { ArrayList<Element> Salida = new ArrayList<Element>(6); BufferedImage bufferedImage;/*from ww w.j av a 2 s . c o m*/ Image image; ResultSet rs = new DaoEstadisticas().documentosMasDescargados(dow, dom, month, year, tipo_usuario, franja, desde, hasta, area, autor, doc_tipo, usuario, todos); int total = 0; ArrayList<ArrayList<String>> resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs); ArrayList<String> Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 1, 2); for (int i = 1; i < resultadosTabla.size(); i++) { total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1)); } PdfPTable tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida); Salida.add(tabla); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph("* Diagrama de Pastel y Diagrama de Barras: Documentos Descargados")); JFreeChart chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane), "Documentos Descargados"); bufferedImage = chart.createBufferedImage(500, 600); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(250, 300); image.setAlignment(Image.MIDDLE); Salida.add(image); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane), "Documentos Descargados", "Identificador Documento", "Numero de Descargados"); bufferedImage = chart.createBufferedImage(1000, 500); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(500, 250); image.setAlignment(Image.MIDDLE); Salida.add(image); return Salida; }
From source file:biblioteca.database2.controladores.ControladorEstadisticas.java
public ArrayList<Element> estadisticasDocumentosConsultados(String dow, String dom, String month, String year, String tipo_usuario, String[] franja, String[] desde, String[] hasta, String area, String autor, String doc_tipo, String usuario, boolean todos, int salida) throws BadElementException, MalformedURLException, IOException { ArrayList<Element> Salida = new ArrayList<Element>(6); BufferedImage bufferedImage;/*w ww. j ava2 s . c om*/ Image image; ResultSet rs = new DaoEstadisticas().documentosMasConsultados(dow, dom, month, year, tipo_usuario, franja, desde, hasta, area, autor, doc_tipo, usuario, todos); int total = 0; ArrayList<ArrayList<String>> resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs); ArrayList<String> Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 2); for (int i = 1; i < resultadosTabla.size(); i++) { total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1)); } PdfPTable tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida); Salida.add(tabla); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph("* Diagrama de Pastel y Diagrama de Barras: Documentos Consultados")); JFreeChart chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane), "Documentos Consultados"); bufferedImage = chart.createBufferedImage(500, 600); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(250, 300); image.setAlignment(Image.MIDDLE); Salida.add(image); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane), "Documentos Consultados", "Identificador Documento", "Numero de Consultas"); bufferedImage = chart.createBufferedImage(1000, 500); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(500, 250); image.setAlignment(Image.MIDDLE); Salida.add(image); return Salida; }
From source file:org.efs.openreports.engine.ChartReportEngine.java
private static ChartEngineOutput createChartOutput(ReportChart reportChart, ChartValue[] values) { JFreeChart chart = null;// w ww.j av a 2s. c om switch (reportChart.getChartType()) { case ReportChart.BAR_CHART: chart = createBarChart(reportChart, values); break; case ReportChart.PIE_CHART: chart = createPieChart(reportChart, values); break; case ReportChart.XY_CHART: chart = createXYChart(reportChart, values); break; case ReportChart.TIME_CHART: chart = createTimeChart(reportChart, values); break; case ReportChart.RING_CHART: chart = createRingChart(reportChart, values); break; } if (chart == null) return null; chart.setBackgroundPaint(Color.WHITE); ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection()); BufferedImage bufferedImage = chart.createBufferedImage(reportChart.getWidth(), reportChart.getHeight(), info); byte[] image = null; try { image = EncoderUtil.encode(bufferedImage, ImageFormat.JPEG); } catch (IOException ioe) { log.warn(ioe); } ChartEngineOutput chartOutput = new ChartEngineOutput(); chartOutput.setContent(image); chartOutput.setContentType(ReportEngineOutput.CONTENT_TYPE_JPEG); chartOutput.setChartRenderingInfo(info); chartOutput.setChartValues(values); return chartOutput; }
From source file:biblioteca.database2.controladores.ControladorEstadisticas.java
public ArrayList<Element> estadisticasUsuariosRegistradosMultiplesTablas(boolean dow, boolean dom, boolean mes, String Year, String[] franja, String desde[], String[] hasta, boolean genero, boolean vinculo, boolean tipo, boolean estado, boolean area, int salida) throws BadElementException, MalformedURLException, IOException { BufferedImage bufferedImage;// ww w . j a v a 2 s . c o m Image image; ResultSet rs; ArrayList<Element> Salida = new ArrayList<Element>(100); ArrayList<Element> images = new ArrayList<Element>(100); DaoEstadisticas controlador = new DaoEstadisticas(); JFreeChart chart; ArrayList<ArrayList<String>> resultadosTabla; ArrayList<String> Array2DtoArrayPlane; PdfPTable tabla = null; int total = 0; if (dow) { ArrayList<String> tmp = controlador.consultarUsuariosRegistradosPorDoW(); float promedio = promedio(tmp, 2); Salida.add(new Paragraph("Resultados para los das de la semana")); Salida.add(new Paragraph("\r\n")); Salida.add( biblioteca.reportes.PdfCreator.plainArrayListToPdfPTable(agregarPorcentajesALista(tmp, 2), 3)); Salida.add(new Paragraph("Promedio " + promedio)); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph( "* Ver Anexo: Diagrama de Pastel: Usuarios Registrados para los dias de la Semana")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(tmp), "Usuarios Registrados para los das de la semana"); bufferedImage = chart.createBufferedImage(400, 300); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(300, 200); image.setAlignment(Image.MIDDLE); images.add(image); images.add(new Paragraph("\r\n")); Salida.add(new Paragraph( "* Ver Anexo: Diagrama de Barras: Usuarios Registrados para los dias de la Semana")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(tmp), "Usuarios Registrados para los das de la semana", "Das de la Semana", "Cantidad de usuarios"); bufferedImage = chart.createBufferedImage(700, 300); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(400, 200); image.setAlignment(Image.MIDDLE); images.add(image); images.add(new Paragraph("\r\n")); } if (dom) { rs = controlador.consultarUsuariosRegistradosPorDoM(); resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs); Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1); for (int i = 1; i < resultadosTabla.size(); i++) total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1)); tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida); Salida.add(new Paragraph("Resultados para los das del mes")); Salida.add(new Paragraph("\r\n")); Salida.add(tabla); Salida.add(new Paragraph("\r\n")); Salida.add( new Paragraph("* Ver Anexo: Diagrama de Pastel: Usuarios Registrados para los dias del mes")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane), "Usuarios Registrados para los das del mes"); bufferedImage = chart.createBufferedImage(500, 600); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(250, 300); image.setAlignment(Image.MIDDLE); images.add(image); images.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane), "Usuarios Registrados para los das del Mes", "Das del mes", "Cantidad de usuarios"); bufferedImage = chart.createBufferedImage(1000, 500); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(500, 250); image.setAlignment(Image.MIDDLE); Salida.add( new Paragraph("* Ver Anexo: Diagrama de Barras: Usuarios Registrados para los dias del mes")); Salida.add(new Paragraph("\r\n")); images.add(image); images.add(new Paragraph("\r\n")); } if (mes) { ArrayList<String> tmp = controlador.consultarUsuariosRegistradosPorMes(); Salida.add(new Paragraph("Resultados para los meses")); Salida.add(new Paragraph("\r\n")); float promedio = promedio(tmp, 2); Salida.add( biblioteca.reportes.PdfCreator.plainArrayListToPdfPTable(agregarPorcentajesALista(tmp, 2), 3)); Salida.add(new Paragraph("Promedio " + promedio)); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph("* Ver Anexo: Diagrama de Pastel: Usuarios Registrados para los meses")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(tmp), "Usuarios Registrados para los meses"); bufferedImage = chart.createBufferedImage(500, 300); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(350, 200); image.setAlignment(Image.MIDDLE); images.add(image); images.add(new Paragraph("\r\n")); Salida.add(new Paragraph("* Ver Anexo: Diagrama de Barras: Usuarios Registrados para los meses")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(tmp), "Usuarios Registrados para los Meses", "Meses", "Cantidad de usuarios"); bufferedImage = chart.createBufferedImage(1000, 600); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(500, 300); image.setAlignment(Image.MIDDLE); images.add(image); images.add(new Paragraph("\r\n")); } if (Year != null) { ArrayList<String> tmp = controlador.consultarUsuariosRegistradosPorYear(Year); Salida.add(new Paragraph("Resultados para el ao seleccionado")); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph("Ao:" + tmp.get(0) + ", Resultados:" + tmp.get(1))); Salida.add(new Paragraph("\r\n")); } if (franja != null) { ArrayList<String> tmp = controlador.consultarUsuariosRegistradosPorFranja(franja[0], franja[1]); Salida.add(new Paragraph("Resultados para la franja seleccionada")); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph("Franja:" + tmp.get(0) + ", Resultados:" + tmp.get(1))); Salida.add(new Paragraph("\r\n")); } if (desde != null && hasta != null) { ArrayList<String> tmp = controlador.consultarUsuariosRegistradosPorIntervalo( desde[0] + "-" + desde[1] + "-" + desde[2], hasta[0] + "-" + hasta[1] + "-" + hasta[2]); Salida.add(new Paragraph("Resultados para el intervalo de tiempo seleccionado")); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph("Intervalo de Tiempo: " + tmp.get(0) + ", Resultados:" + tmp.get(1))); Salida.add(new Paragraph("\r\n")); } if (genero) { rs = controlador.consultarUsuariosRegistradosPorGenero(); resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs); for (int i = 0; i < resultadosTabla.size(); i++) { if (resultadosTabla.get(i).get(0).equals("F") || resultadosTabla.get(i).get(0).equals("f")) resultadosTabla.get(i).set(0, "Femenino"); if (resultadosTabla.get(i).get(0).equals("M") || resultadosTabla.get(i).get(0).equals("m")) resultadosTabla.get(i).set(0, "Masculino"); if (resultadosTabla.get(i).get(0).equals("N") || resultadosTabla.get(i).get(0).equals("n")) { resultadosTabla.remove(i); } } Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1); for (int i = 1; i < resultadosTabla.size(); i++) total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1)); tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida); Salida.add(new Paragraph("Estadisticas de Usuarios Registrados por Genero")); Salida.add(new Paragraph("\r\n")); Salida.add(tabla); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph( "* Ver Anexo: Diagrama de Pastel: Estadisticas de Usuarios Registrados por Genero")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane), "Estadisticas de Usuarios Registrados por Genero"); bufferedImage = chart.createBufferedImage(450, 400); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(250, 200); image.setAlignment(Image.MIDDLE); images.add(image); images.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane), "Estadisticas de Usuarios Registrados por Genero", "Genero", "Cantidad de Usuarios"); bufferedImage = chart.createBufferedImage(400, 400); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(200, 200); image.setAlignment(Image.MIDDLE); Salida.add(new Paragraph( "* Ver Anexo: Diagrama de Barras: Estadisticas de Usuarios Registrados por Genero")); Salida.add(new Paragraph("\r\n")); images.add(image); images.add(new Paragraph("\r\n")); } if (vinculo) { rs = controlador.consultarUsuariosRegistradosPorVinculo(); resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs); Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1); for (int i = 1; i < resultadosTabla.size(); i++) total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1)); tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida); Salida.add(new Paragraph("Estadisticas de Usuarios Registrados por Vinculo")); Salida.add(new Paragraph("\r\n")); Salida.add(tabla); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph( "* Ver Anexo: Diagrama de Pastel: Estadisticas de Usuarios Registrados por Vinculo")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane), "Estadisticas de Usuarios Registrados por Vinculo"); bufferedImage = chart.createBufferedImage(500, 500); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(300, 200); image.setAlignment(Image.MIDDLE); images.add(image); images.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane), "Estadisticas de Usuarios Registrados por Vinculo", "Vinculo", "Cantidad de Usuarios"); bufferedImage = chart.createBufferedImage(500, 400); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(200, 200); image.setAlignment(Image.MIDDLE); Salida.add(new Paragraph( "* Ver Anexo: Diagrama de Barras: Estadisticas de Usuarios Registrados por Vinculo")); Salida.add(new Paragraph("\r\n")); images.add(image); images.add(new Paragraph("\r\n")); } if (tipo) { rs = controlador.consultarUsuariosRegistradosPorTipoUsuario(); resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs); for (int i = 0; i < resultadosTabla.size(); i++) { if (resultadosTabla.get(i).get(0).equals("3")) resultadosTabla.get(i).set(0, "Normal"); else if (resultadosTabla.get(i).get(0).equals("2")) resultadosTabla.get(i).set(0, "Catalogador"); else if (resultadosTabla.get(i).get(0).equals("1")) resultadosTabla.get(i).set(0, "Administrador"); else if (resultadosTabla.get(i).get(0).equals("0")) resultadosTabla.remove(i); } Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1); for (int i = 1; i < resultadosTabla.size(); i++) total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1)); tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida); Salida.add(new Paragraph("Estadisticas de Usuarios Registrados por Tipo de Usuario")); Salida.add(new Paragraph("\r\n")); Salida.add(tabla); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph("* Ver Anexo: Diagrama de Pastel: Estadisticas de Usuarios Tipo de Usuario")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane), "Estadisticas de Usuarios Tipo de Usuario"); bufferedImage = chart.createBufferedImage(450, 400); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(250, 200); image.setAlignment(Image.MIDDLE); images.add(image); images.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane), "Estadisticas de Usuarios Registrados por Tipo de Usuario", "Tipo de Usuario", "Cantidad de Usuarios"); bufferedImage = chart.createBufferedImage(600, 400); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(300, 200); image.setAlignment(Image.MIDDLE); Salida.add(new Paragraph( "* Ver Anexo: Diagrama de Barras: Estadisticas de Usuarios Registrados por Genero")); Salida.add(new Paragraph("\r\n")); images.add(image); images.add(new Paragraph("\r\n")); } if (estado) { rs = controlador.consultarUsuariosRegistradosPorEstado(); resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs); for (int i = 0; i < resultadosTabla.size(); i++) { if (resultadosTabla.get(i).get(0).equals("t") || resultadosTabla.get(i).get(0).equals("T")) resultadosTabla.get(i).set(0, "Activo"); if (resultadosTabla.get(i).get(0).equals("f") || resultadosTabla.get(i).get(0).equals("F")) resultadosTabla.get(i).set(0, "Inactivo"); } Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1); for (int i = 1; i < resultadosTabla.size(); i++) total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1)); tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida); Salida.add(new Paragraph("Estadisticas de Usuarios Registrados por Estado de Cuenta")); Salida.add(new Paragraph("\r\n")); Salida.add(tabla); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph( "* Ver Anexo: Diagrama de Pastel: Estadisticas de Usuarios por Estado de Cuenta")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane), "Estadisticas de Usuarios por Estado de Cuenta"); bufferedImage = chart.createBufferedImage(450, 400); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(250, 200); image.setAlignment(Image.MIDDLE); images.add(image); images.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane), "Estadisticas de Usuarios Registrados por Estado de Cuenta", "Estado de Cuenta", "Cantidad de Usuarios"); bufferedImage = chart.createBufferedImage(600, 400); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(300, 200); image.setAlignment(Image.MIDDLE); Salida.add(new Paragraph( "* Ver Anexo: Diagrama de Barras: Estadisticas de Usuarios Registrados por Estado de Cuenta")); Salida.add(new Paragraph("\r\n")); images.add(image); images.add(new Paragraph("\r\n")); } if (area) { total = 0; rs = controlador.consultarUsuariosRegistradosPorArea(); resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs); Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 2); for (int i = 1; i < resultadosTabla.size(); i++) total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1)); tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida); Salida.add(new Paragraph("Areas con ms Documentos Catalogados")); Salida.add(new Paragraph("\r\n")); Salida.add(tabla); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph( "* Ver Anexo Diagrama de Pastel y Diagrama de Barras para Areas con ms Documentos Catalogados")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane), "Areas con ms Documentos Catalogados"); bufferedImage = chart.createBufferedImage(600, 600); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(300, 300); image.setAlignment(Image.MIDDLE); images.add(image); images.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane), "Areas con ms Documentos Catalogados", "Area_ID", "Numero de Documentos Catalogados"); bufferedImage = chart.createBufferedImage(900, 500); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(450, 250); image.setAlignment(Image.MIDDLE); images.add(image); images.add(new Paragraph("\r\n")); } if (!images.isEmpty()) { Salida.add(new Paragraph("Anexos:")); Salida.add(new Paragraph("\r\n")); } for (int i = 0; i < images.size(); i++) { Salida.add(images.get(i)); } return Salida; }
From source file:com.google.gwt.benchmarks.viewer.server.ReportImageServer.java
private void handleRequest(HttpServletRequest request, HttpServletResponse response) throws IOException { String uri = request.getRequestURI(); String requestString = uri.split("test_images/")[1]; String[] requestParams = requestString.split("/"); String reportName = URLDecoder.decode(requestParams[0], charset); String categoryName = URLDecoder.decode(requestParams[1], charset); // String className = URLDecoder.decode(requestParams[2], charset); String testName = URLDecoder.decode(requestParams[3], charset); String agent = URLDecoder.decode(requestParams[4], charset); ReportDatabase db = ReportDatabase.getInstance(); Report report = db.getReport(reportName); List<Category> categories = report.getCategories(); Category category = getCategoryByName(categories, categoryName); List<Benchmark> benchmarks = category.getBenchmarks(); Benchmark benchmark = getBenchmarkByName(benchmarks, testName); List<Result> results = benchmark.getResults(); Result result = getResultsByAgent(results, agent); String title = BrowserInfo.getBrowser(agent); JFreeChart chart = createChart(testName, result, title, results); chart.getTitle().setFont(Font.decode("Verdana BOLD 12")); chart.setAntiAlias(true);// w w w. j a v a 2s. c om chart.setBorderVisible(true); chart.setBackgroundPaint(new Color(241, 241, 241)); Plot plot = chart.getPlot(); plot.setDrawingSupplier(getDrawingSupplier()); plot.setBackgroundPaint(new GradientPaint(0, 0, Color.white, 640, 480, new Color(200, 200, 200))); if (plot instanceof XYPlot) { XYPlot xyplot = (XYPlot) plot; Font labelFont = Font.decode("Verdana PLAIN"); xyplot.getDomainAxis().setLabelFont(labelFont); xyplot.getRangeAxis().setLabelFont(labelFont); org.jfree.chart.renderer.xy.XYItemRenderer xyitemrenderer = xyplot.getRenderer(); xyitemrenderer.setStroke(new BasicStroke(4)); if (xyitemrenderer instanceof XYLineAndShapeRenderer) { XYLineAndShapeRenderer xylineandshaperenderer = (XYLineAndShapeRenderer) xyitemrenderer; xylineandshaperenderer.setShapesVisible(true); xylineandshaperenderer.setShapesFilled(true); } } // Try to fit all the graphs into a 1024 window, with a min of 240 and a max // of 480 final int graphWidth = Math.max(240, Math.min(480, (1024 - 10 * results.size()) / results.size())); BufferedImage img = chart.createBufferedImage(graphWidth, 240); byte[] image = EncoderUtil.encode(img, ImageFormat.PNG); // The images have unique URLs; might as well set them to never expire. response.setHeader("Cache-Control", "max-age=0"); response.setHeader("Expires", "Fri, 2 Jan 1970 00:00:00 GMT"); response.setContentType("image/png"); response.setContentLength(image.length); OutputStream output = response.getOutputStream(); output.write(image); }
From source file:biblioteca.database2.controladores.ControladorEstadisticas.java
public ArrayList<Element> ConsultarDocumentosCatalogados(boolean dow, boolean dom, boolean month, String year, String[] franja, String[] desde, String[] Hasta, boolean area, boolean autor, boolean doc_tipo, boolean pc, boolean usuario, int salida) throws BadElementException, MalformedURLException, IOException { ArrayList<Element> Salida = new ArrayList<Element>(100); ArrayList<Element> Images = new ArrayList<Element>(100); DaoEstadisticas controlador = new DaoEstadisticas(); ResultSet rs;//w ww .jav a 2 s. c o m JFreeChart chart; BufferedImage bufferedImage; Image image; ArrayList<ArrayList<String>> resultadosTabla; ArrayList<String> Array2DtoArrayPlane; PdfPTable tabla = null; int total = 0; if (dow) { ArrayList<String> tmp = controlador.consultarDocumentosCatalogadosPorDoW(); float promedio = promedio(tmp, 2); Salida.add(new Paragraph("Resultados de Documentos Catalogados para los das de la semana")); Salida.add(new Paragraph("\r\n")); Salida.add( biblioteca.reportes.PdfCreator.plainArrayListToPdfPTable(agregarPorcentajesALista(tmp, 2), 3)); Salida.add(new Paragraph("Promedio " + promedio)); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph( "* Ver Anexo: Diagrama de Pastel: Documentos Catalogados para los dias de la Semana")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(tmp), "Documentos Catalogados para los Das de la Semana"); bufferedImage = chart.createBufferedImage(400, 300); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(300, 200); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); Salida.add(new Paragraph( "* Ver Anexo: Diagrama de Barras: Documentos Catalogados para los Das de la Semana")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(tmp), "Documentos Catalogados para los Das de la Semana", "Das de la Semana", "Cantidad de Documentos Catalogados"); bufferedImage = chart.createBufferedImage(700, 300); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(400, 200); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); } if (dom) { rs = controlador.consultarDocumentosCatalogadosPorDoM(); resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs); Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1); for (int i = 1; i < resultadosTabla.size(); i++) total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1)); tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida); Salida.add(new Paragraph("Resultados de Documentos Catalogados para los das del mes")); Salida.add(new Paragraph("\r\n")); Salida.add(tabla); Salida.add(new Paragraph("\r\n")); Salida.add( new Paragraph("* Ver Anexo: Diagrama de Pastel: Documentos Catalogados para los dias del mes")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane), "Documentos Catalogados para los das del mes"); bufferedImage = chart.createBufferedImage(500, 600); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(250, 300); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane), "Documentos Catalogados para los das del Mes", "Das del mes", "Documentos Catalogados"); bufferedImage = chart.createBufferedImage(1000, 500); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(500, 250); image.setAlignment(Image.MIDDLE); Salida.add( new Paragraph("* Ver Anexo: Diagrama de Barras: Documentos Catalogados para los dias del mes")); Salida.add(new Paragraph("\r\n")); Images.add(image); Images.add(new Paragraph("\r\n")); } if (month) { ArrayList<String> tmp = controlador.consultarDocumentosCatalogadosPorMes(); Salida.add(new Paragraph("Resultados de Documentos Catalogados para los meses")); Salida.add(new Paragraph("\r\n")); float promedio = promedio(tmp, 2); Salida.add( biblioteca.reportes.PdfCreator.plainArrayListToPdfPTable(agregarPorcentajesALista(tmp, 2), 3)); Salida.add(new Paragraph("Promedio " + promedio)); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph("* Ver Anexo: Diagrama de Pastel: Documentos Catalogados para los meses")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(tmp), "Documentos Catalogados para los meses"); bufferedImage = chart.createBufferedImage(500, 300); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(350, 200); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); Salida.add(new Paragraph("* Ver Anexo: Diagrama de Barras: Documentos Catalogados para los meses")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(tmp), "Documentos Catalogados para los Meses", "Meses", "Documentos Catalogados"); bufferedImage = chart.createBufferedImage(1000, 600); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(500, 300); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); } if (year != null) { ArrayList<String> tmp = controlador.consultarDocumentosCatalogadosPorYear(year); Salida.add(new Paragraph("Resultados para el ao seleccionado")); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph("Ao: " + tmp.get(0) + ", Resultados:" + tmp.get(1))); Salida.add(new Paragraph("\r\n")); } if (franja != null) { ArrayList<String> tmp = controlador.consultarDocumentosCatalogadosPorFranja(franja[0], franja[1]); Salida.add(new Paragraph("Resultados para la franja seleccionada")); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph("Franja:" + tmp.get(0) + ", Resultados:" + tmp.get(1))); Salida.add(new Paragraph("\r\n")); } if (desde != null && Hasta != null) { ArrayList<String> tmp = controlador.consultarDocumentosCatalogadosPorIntervalo( desde[0] + "-" + desde[1] + "-" + desde[2], Hasta[0] + "-" + Hasta[1] + "-" + Hasta[2]); Salida.add(new Paragraph("Resultados para el intervalo de tiempo seleccionado")); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph("Intervalo de Tiempo: " + tmp.get(0) + ", Resultados:" + tmp.get(1))); Salida.add(new Paragraph("\r\n")); } if (area) { total = 0; rs = controlador.consultarDocumentosCatalogadosPorArea(); resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs); Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 2); for (int i = 1; i < resultadosTabla.size(); i++) total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1)); tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida); Salida.add(new Paragraph("Areas con ms Documentos Catalogados")); Salida.add(new Paragraph("\r\n")); Salida.add(tabla); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph( "* Ver Anexo Diagrama de Pastel y Diagrama de Barras para Areas con ms Documentos Catalogados")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane), "Areas con ms Documentos Catalogados"); bufferedImage = chart.createBufferedImage(600, 600); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(300, 300); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane), "Areas con ms Documentos Catalogados", "Area_ID", "Numero de Documentos Catalogados"); bufferedImage = chart.createBufferedImage(900, 500); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(450, 250); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); } if (autor) { total = 0; rs = controlador.consultarDocumentosCatalogadosPorAutor(); resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs); Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 1, 3); for (int i = 1; i < resultadosTabla.size(); i++) total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1)); tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida); Salida.add(new Paragraph("Autores con ms Documentos Catalogados")); Salida.add(new Paragraph("\r\n")); Salida.add(tabla); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph( "* Ver Anexo Diagrama de Pastel y Diagrama de Barras para Autores con ms Documentos Catalogados")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane), "Autores con ms Documentos Catalogados"); bufferedImage = chart.createBufferedImage(600, 600); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(300, 300); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane), "Autores con ms Documentos Catalogados", "Nombre Autor", "Numero de Documentos Catalogados"); bufferedImage = chart.createBufferedImage(1000, 600); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(400, 300); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); } if (doc_tipo) { total = 0; rs = controlador.consultarDocumentosCatalogadosPorTipoMaterial(); resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs); Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1); for (int i = 1; i < resultadosTabla.size(); i++) total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1)); tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida); Salida.add(new Paragraph("Tipos de Material con ms Documentos Catalogados")); Salida.add(new Paragraph("\r\n")); Salida.add(tabla); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph( "* Ver Anexo Diagrama de Pastel y Diagrama de Barras para Tipos de Material con ms Documentos Catalogados")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane), "Tipos de Material con ms Documentos Catalogados"); bufferedImage = chart.createBufferedImage(600, 600); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); bufferedImage = chart.createBufferedImage(300, 300); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane), "Tipos de Material con ms Documentos Catalogados", "Tipo de Material", "Numero de Documentos Catalogados"); bufferedImage = chart.createBufferedImage(900, 500); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(450, 250); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); } if (pc) { total = 0; rs = controlador.consultarDocumentosCatalogadosPorPalabraClave(); resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs); Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1); for (int i = 1; i < resultadosTabla.size(); i++) total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1)); tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida); Salida.add(new Paragraph("Palabras Clave con ms Documentos Catalogados")); Salida.add(new Paragraph("\r\n")); Salida.add(tabla); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph( "* Ver Anexo Diagrama de Pastel y Diagrama de Barras para Palabras Clave con ms Documentos Catalogados")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane), "Palabras Clave con ms Documentos Catalogados"); bufferedImage = chart.createBufferedImage(500, 500); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(250, 250); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane), "Palabras Clave con ms Documentos Catalogados", "Palabras Clave", "Numero de Documentos Catalogados"); bufferedImage = chart.createBufferedImage(900, 500); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(450, 250); Images.add(image); Images.add(new Paragraph("\r\n")); } if (usuario) { total = 0; rs = controlador.consultarDocumentosCatalogadosPorUsuarios(); resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs); Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 2); for (int i = 1; i < resultadosTabla.size(); i++) total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1)); tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida); Salida.add(new Paragraph("Usuarios que mas Catalogan Documentos")); Salida.add(new Paragraph("\r\n")); Salida.add(tabla); Salida.add(new Paragraph("\r\n")); Salida.add(new Paragraph( "* Ver Anexo Diagrama de Pastel y Diagrama de Barras para Usuarios que mas Catalogan")); Salida.add(new Paragraph("\r\n")); chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane), "Usuarios que mas Catalogan"); bufferedImage = chart.createBufferedImage(500, 500); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(250, 250); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane), "Usuarios que mas Catalogan", "Username", "Numero de Documentos Catalogados"); bufferedImage = chart.createBufferedImage(900, 500); image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png")); image.scaleAbsolute(450, 250); image.setAlignment(Image.MIDDLE); Images.add(image); Images.add(new Paragraph("\r\n")); } if (!Images.isEmpty()) { Salida.add(new Paragraph("Anexos:")); Salida.add(new Paragraph("\r\n")); } for (int i = 0; i < Images.size(); i++) { Salida.add(Images.get(i)); } return Salida; }