場景:后端生成報(bào)告中需要插入與前端展示相同的echarts圖
解決方案:phantomjs無頭瀏覽器+echarts-convert.js
服務(wù)器環(huán)境:CentOS 7
環(huán)境搭建
參考: https://www.cnblogs.com/yestreenstars/p/5511212.html
1.安裝依賴軟件
yum -y install wget fontconfig
2.下載PhantomJS
wget -P /tmp/ https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-i686.tar.bz2
3.解壓
tar xjf /tmp/phantomjs-2.1.1-linux-i686.tar.bz2 -C /usr/local/
4.重命名
mv /usr/local/phantomjs-2.1.1-linux-i686 /usr/local/phantomjs
5.建立軟鏈接
ln -s /usr/local/phantomjs/bin/phantomjs /usr/bin/
6.echarts亂碼解決
yum install bitmap-fonts bitmap-fonts-cjk
7.下載轉(zhuǎn)換echarts所需依賴
下載地址:https://gitee.com/saintlee/echartsconvert
如內(nèi)置echarts版本與前端不符灌侣,進(jìn)行替換即可
使用
echarts-conver參數(shù)
詳見:https://gitee.com/saintlee/echartsconvert
-s或--server:開啟服務(wù)監(jiān)聽,如果開啟服務(wù)端唐责,則-o不生效,這也就意味不能使用腳本命令生成圖片卑惜;
-p或--port:端口號膏执,只有-s啟用時(shí)生效,改變監(jiān)聽端口號露久;
-o或--opt:ECharts的option,這里是json字符串更米,最外層不加引號;
示例:{title:{text:'ECharts示例'},tooltip:{},legend:{data:['銷量']},xAxis:{data:['襯衫','羊毛衫','雪紡衫','褲子','高跟鞋','襪子']},yAxis:{},series:[{name:'銷量',type:'bar',data:[5,20,36,10,10,20]}]}
-t或--type:生成類型file或base64毫痕,file是生成圖片征峦,base64是生成Base64字符串;
-f或--outfile:文件輸出路徑消请,只有--type=file時(shí)生效栏笆,如果不指定,則在腳本目錄下創(chuàng)建一個(gè)tmp文件夾臊泰,將圖片以時(shí)間戳為名字竖伯,保存到tmp目錄下;
-w或--width:生成的圖片寬度因宇,默認(rèn)800像素七婴;
-h或--height:生成的圖片高度,默認(rèn)400像素察滑。
作為server
只能生成簡單echarts打厘,返回圖片base64
phantomjs /app/echartsconvert/echarts-convert.js -s -p 6666
參考:http://www.reibang.com/p/dfc28fd7d786
命令行
作為腳本使用生成本地圖片,能生成較復(fù)雜echarts
phantomjs /app/echartsconvert/echarts-convert.js -o [echartsOption] -t file -f [filePath] [-w width] -h[height]
參考:https://blog.csdn.net/zengyif_szu/article/details/81942799