方法之前我们先说一下设计思路,有了好设计思路我们才能去写好一个程序
1.初步思路
①Web项目提供一个http服务,并公开此url地址,访问该地址可以获取Echarts统计图;
②Java通过Runtime调用phantomjs脚本,并传入url和filename参数,相当于打开浏览器;
③使用page.open(url)打开该地址,相当于在浏览器中浏览访问;
④使用page.render(filename)生成图片,相当于截图保存;
⑤Java读取filename图片文件File,将其转换成Base64字符串即可。
2.中期思路
①Java通过Runtime调用phantomjs脚本,传入ECharts的option和filename参数;
②使用page.open(about:blank)打开空页面;
③调用page.evaluate()在空页面上创建ECharts的Dom层和JavaScript代码;
④使用page.render(filename)生成图片;
⑤Java读取filename图片文件File,将其转换成Base64字符串即可。
2.中期思路
①使用server.listen()开启Web服务。
②java通过url请求地址,并传入ECharts的option参数;
③使用page.open(about:blank)打开空页面;
④ 调用page.evaluate()在空页面上创建ECharts的Dom层和JavaScript代码;
⑤使用page.renderBase64(format)生成图片的Base64字符串;
⑥response返回Base64数据。
有了思路我们写一下具体实现
一、phantomjs、EChartsConvert下载
1.下载、解压
链接:https://pan.baidu.com/s/1v1r4K0JztR-yuYW8NGXesw
提取码:y8jv
2.配置环境变量
cmd–>set path=%path%;E:\applications\phantomjs-2.1.1\bin
3.运行
<phantomjs路径> <EChartsConvert路径> -s -p <服务端口号>
例如:phantomjs E:\applications\phantomjs-2.1.1\echartsconvert\echarts-convert.js -s -p 6666
出现success表示成功,成功后别关cmd窗口
二、java代码
1.maven项目,结构如图
2.工具类
Http工具类
package com.mosband.genechars.util;
import