效果图:
源码不解释:
private void ResultToJpg(List list, String title, HttpServletResponse response) { BufferedImage image; int totalrow = list.size(); int totalcol = 7; int imageWidth = 640; int rowheight = 40; int imageHeight = totalrow * rowheight + 105; int startHeight = 20; int startWidth = 10; int colwidth = (int) ((imageWidth - 20) / totalcol); int colwidth2 = (int) ((imageWidth - 20) / (totalcol + 1)); image = new BufferedImage(imageWidth, imageHeight, BufferedImage.TYPE_INT_RGB); Graphics2D graphics = (Graphics2D) image.getGraphics(); graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); graphics.setColor(Color.WHITE); graphics.fillRect(0, 0, imageWidth, imageHeight); Font font = new Font("微软雅黑", Font.BOLD, 20); graphics.setFont(font); graphics.setColor(new Color(112, 48, 158)); graphics.drawString(Strings.sNull(title), startWidth, startHeight + 10); font = new Font("微软雅黑", Font.PLAIN, 13); graphics.setColor(new Color(99, 99, 99)); graphics.setFont(font); String subtitle1 = "欢迎访问"; graphics.drawString(subtitle1, startWidth, startHeight + 30); font = new Font("Arial, Helvetica, sans-serif", Font.BOLD, 13); graphics.setColor(new Color(112, 48, 158)); graphics.setFont(font); String subtitle2 = "inm.xuetang.cn"; graphics.drawString(subtitle2, startWidth + 60, startHeight + 30); font = new Font("微软雅黑", Font.PLAIN, 13); graphics.setColor(new Color(99, 99, 99)); graphics.setFont(font); String subtitle3 = "冲榜、制榜!"; graphics.drawString(subtitle3, startWidth + 165, startHeight + 30); //画首行 graphics.setColor(new Color(112, 48, 158)); graphics.fillRect(startWidth, startHeight + rowheight, imageWidth - 20, rowheight); font = new Font("微软雅黑", Font.PLAIN, 12); graphics.setColor(Color.WHITE); graphics.setFont(font); graphics.drawString("#", startWidth + 10, startHeight + rowheight * 2 - 15); graphics.drawString("公众号", startWidth + colwidth - 10, startHeight + rowheight * 2 - 15); //画表头 String[] headCells = {"发布", "总阅读数", " 头条", " 平均 ", "总点赞数", " WCI"}; for (int m = 0; m < headCells.length; m++) { graphics.drawString(headCells[m].toString(), startWidth + colwidth2 * m + colwidth * 2, startHeight + rowheight * 2 - 15); } //画行 for (int j = 0; j 0) { String readnum_all = Strings.sNull(map.get("readnum_all")); int t = NumberUtils.toInt(readnum_all.substring(readnum_all.length() - 4, readnum_all.length() - 3)); if (t > 0) { readnum_all = readnum_all.substring(0, readnum_all.length() - 4) + "." + String.valueOf(t); } else { readnum_all = readnum_all.substring(0, readnum_all.length() - 4); } graphics.drawString(readnum_all + "万+", startWidth + colwidth2 + colwidth * 2 + 5, startHeight + (j + 3) * rowheight - 15); } else { graphics.drawString(Strings.sNull(map.get("readnum_all")), startWidth + colwidth2 + colwidth * 2 + 5, startHeight + (j + 3) * rowheight - 15); } if (NumberUtils.toInt(Strings.sNull(map.get("url_times_readnum"))) > 100000) { String url_times_readnum = Strings.sNull(map.get("url_times_readnum")); int t = NumberUtils.toInt(url_times_readnum.substring(url_times_readnum.length() - 4, url_times_readnum.length() - 3)); if (t > 0) { url_times_readnum = url_times_readnum.substring(0, url_times_readnum.length() - 4) + "." + String.valueOf(t); } else { url_times_readnum = url_times_readnum.substring(0, url_times_readnum.length() - 4); } graphics.drawString(url_times_readnum+"万+", startWidth + colwidth2 + colwidth * 3 - 5, startHeight + (j + 3) * rowheight - 15); } else { graphics.drawString(Strings.sNull(map.get("url_times_readnum")), startWidth + colwidth2 + colwidth * 3 - 5, startHeight + (j + 3) * rowheight - 15); } if (NumberUtils.toInt(Strings.sNull(map.get("readnum_av"))) > 100000) { String readnum_av = Strings.sNull(map.get("readnum_av")); int t = NumberUtils.toInt(readnum_av.substring(readnum_av.length() - 4, readnum_av.length() - 3)); if (t > 0) { readnum_av = readnum_av.substring(0, readnum_av.length() - 4) + "." + String.valueOf(t); } else { readnum_av = readnum_av.substring(0, readnum_av.length() - 4); } graphics.drawString(readnum_av+"万+", startWidth + colwidth2 + colwidth * 4 - 15, startHeight + (j + 3) * rowheight - 15); } else { graphics.drawString(Strings.sNull(map.get("readnum_av")), startWidth + colwidth2 + colwidth * 4 - 15, startHeight + (j + 3) * rowheight - 15); } graphics.drawString(Strings.sNull(map.get("likenum_all")), startWidth + colwidth2 + colwidth * 5 - 20, startHeight + (j + 3) * rowheight - 15); graphics.drawString(Strings.sNull(map.get("wci")), startWidth + colwidth2 + colwidth * 6 - 40, startHeight + (j + 3) * rowheight - 15); } //末行 graphics.setColor(Color.WHITE); graphics.fillRect(startWidth, startHeight + (totalrow + 1) * rowheight + 40, imageWidth - 20, startHeight + (totalrow + 1) * rowheight); try { response.setContentType("image/png"); OutputStream out = response.getOutputStream(); ImageIO.write(image, "png", out); } catch (Exception e) { e.printStackTrace(); } }
本文地址:https://wizzer.cn/archives/3102 , 转载请保留.
2012 A11 activiti Android budwk C# CDMA CMNET CSS DIV FLASH GPS IN语 iphone iphone4 IT JAVA JS M8 M9 MP4 MySQL nginx nodejs nutz nutzwk PHP QQ sails WM wordpress 军事 固件 安徽 微信 插件 教程 源代码 源码 爱 电影 程序员 经纬度 腾讯 魅族