前面说到前台呈现的页面是img标签,因此需要在后台生成相应的图片,在img的src内容中改为相应的路径地址;而在生成文档的过程中需要替换相应的img标签。后一部分上篇文章已经讲过,本片主要讲前一部分。

  为了先在服务器中生成相应的饼图,我在项目中引用了jfreechart来生成图表的图片:

  代码实现:

  

    //content是前台呈现的html内容
content.append("<p style=\"text-align:center\"><img src=\"" + request.getContextPath() + "/exportWord/"
+ createChartImg("",cycleMap,new Font("宋体", Font.BOLD, 15),sessionId+"阶段") + "\"/></p>"); private String createChartImg(String title, Map<String,Double> datas, Font font,String name) throws Exception{
String imgName = name + ".png";//生成图片名称 //如果不使用Font,中文将显示不出来
DefaultPieDataset pds = new DefaultPieDataset(); //获取迭代器:
Iterator iterator= datas.entrySet().iterator();
Map.Entry entry=null;
while(iterator.hasNext()){
entry=(Map.Entry) iterator.next();
pds.setValue(entry.getKey().toString(),Double.parseDouble(entry.getValue().toString()));
} /**
* 生成一个饼图的图表
* 分别是:显示图表的标题、需要提供对应图表的DateSet对象、是否显示图例、是否生成贴士以及是否生成URL链接
*/
JFreeChart chart = ChartFactory.createPieChart(title, pds, false, false, true); //得到图块
PiePlot plot = (PiePlot) chart.getPlot(); //设置标签字体、背景颜色
plot.setLabelFont(font);
plot.setLabelBackgroundPaint(new Color(51, 199, 226)); //设置标签生成器(默认{0})
//{0}:key {1}:value {2}:百分比 {3}:sum
plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0} {2}"));
//图片背景颜色
plot.setBackgroundPaint(new Color(255, 255, 255)); //将内存中的图片写到本地硬盘
ChartUtilities.saveChartAsJPEG(new File(ExportWord.getWordPath() + imgName), chart, 400, 200); return imgName;
}

  最终前台呈现效果:

  当然,jfreechart不止能生成饼图的图片,还能生成柱状图、折线图等等,本次需求只需要实现饼图,以后有机会继续探索!

java web实现在线编辑word,并将word导出(三)的更多相关文章

  1. java web实现在线编辑word,并将word导出(一)

    前段时间领导交代了一个需求:客户需要一个能够web在线编辑文字,如同编辑word文档一样,同时能够将编辑完成的内容导出为word文档并下载到本地. 我们选择了前台使用富文本插件的形式用于编辑内容,使用 ...

  2. java web实现在线编辑word,并将word导出(二)

    前一篇文章介绍了后台将前台html转为word文档的一种方式,但却有一个问题是没法讲图片放置在生成的word报告中.我在网上找了很多方法,甚至将图片转换成base64编码的方式也不成功.效果如下: 由 ...

  3. Java Web 常用在线api汇总(不定时更新)

    1.Hibernate API Documentation (3.2.2.ga) http://www.hibernate.org/hib_docs/v3/api/ 2.Spring Framewor ...

  4. java web 程序---在线时长

    思路:toLocalString()这个方法 <body> <% long t=session.getLastAccessedTime(); long t2=session.getC ...

  5. Java Web用Freemarker生成带图片的Word文档

    步骤一:模板制作 用world2003做一个导出模板,如果有图片则加入一张图片占位,将world另存为xml,将xml中需要导出的内容用Freemarker标签表示,最后另存为.ftl结尾的模板: 步 ...

  6. (21) java web的struts2框架的使用-Action实现的三种方式

    上一篇介绍了struts使用的四个步骤. 其中在开发action的时候,可以有三种实现方式: 1,写一个类,继承与ActionSupport 2,写一个类,实现Action接口 3,写一个类,实现业务 ...

  7. [原创]Java在线编辑word文档调用PageOffice实现并发控制

    1.功能介绍 PageOffice的并发控制功能用来解决多个用户在线编辑同一篇文档可能造成的互相覆盖修改结果的技术难题. B/S架构下用户访问都是并发的,也就是说经常会出现同时N个用户对一个服务器页面 ...

  8. Office word excel电子表格在线编辑的实现方法

    Office xp之后的版本支持通过webdav协议(http的扩展)直接编辑服务器上的文件. IIS(6.0)支持webdav,这在IIS管理器的web服务扩展中可以看到.利用IIS作为webdav ...

  9. 在线编辑word文档 可保存到服务器

    使用说明:该方法只在office xp 和 2003上 测试通过,2000及以下 版本没试. 注意:你要打开的服务器端的word文档要有写权限.iis要开起 web服务扩展中的webdav为允许 具体 ...

随机推荐

  1. IdentityServer4专题之六:Resource Owner Password Credentials

    实现代码: (1)IdentityServer4授权服务器代码: public static class Config {  public static IEnumerable<Identity ...

  2. 十一 JSP&EL&JSTL

    1 什么是JSP? 从用户角度看待,是一个网页从程序员角度,其实是一个Java类,他继承了Servlet,所以可以直接说JSP就是一个Servlet 为什么会有JSP?html多数情况下用来显示静态内 ...

  3. NPM概述及使用简介

    什么是 NPM npm之于Node,就像pip之于Python,gem之于Ruby,composer之于PHP. npm是Node官方提供的包管理工具,他已经成了Node包的标准发布平台,用于Node ...

  4. 吴裕雄--天生自然JAVA面向对象高级编程学习笔记:抽象类与接口的应用

    abstract class A{ // 定义抽象类A public abstract void print() ; // 定义抽象方法print() }; class B extends A { / ...

  5. windows编程-socket

    server部分 ,Initialize Winsock. ,Create a socket. ,Bind the socket. ,Listen on the socket for a client ...

  6. Android之Handler消息处理机制

    Handler的作用 Handler消息机制在Android中的应用非常广泛,很多组件的底层实现都是靠Handler来完成的,所以掌握Handler消息机制的原理还是非常重要的.Handler的主要功 ...

  7. 功耗极低非接触 13.56mhz读卡芯片:SI522

    众所周知13.56mhz是高频,一般用于防伪,做到成品非常薄.在智能门锁以及RFID读卡器是非常多人采用的,不管是在读卡距离.读卡灵敏度都是非常好的.现在智能门锁的竞争性很大,大多厂商及方案商都慢慢往 ...

  8. Day4 - M - Roads in Berland CodeForces - 25C

    There are n cities numbered from 1 to n in Berland. Some of them are connected by two-way roads. Eac ...

  9. esxi 主机用户功能说明

    1.  root 用户 默认情况下,每个 ESXi 主机都有一个具有管理员角色的 root 用户帐户.该 root 用户帐户可用于本地管理,并可用于将主机连接到 vCenter Server. 此公共 ...

  10. redis主从遇到的问题

    rendis安装 主从切换 Redis的HA方案 Redis高可用架构(1)—Keepalive+VIP 还是配置的问题   从一直无法连接上主 redis.conf配置 # Examples:# 1 ...