图片服务器
# 在Server那块使用yarn add highcharts-export-server -D
# 然后使用PM2管理导出图片服务
# 可能存在问题
1. node版本过低,导致下载highcharts-export-server不成功
解决方案
1)https://nodejs.org/en/download/下载一个linux安装包
2)将包解压到/home/ccq目录下面
3)去/etc/profile下面设置环境变量,加上下面这一句
export PATH=PATH:/home/ccq/node/bin
2. 因为这里使用的是highcharts,里面使用了phantom,所以需要在有外网的前提下下载好,然后将改包放到/highcharts-export-server/phantom下面,注意,phantom/export.html里面也有两个需要用到外网的包moment.min.js和moment-timezone.min.js,
3. 这里使用的是PM2对服务器进行管理,所以需要把改包放到全局下面去。
使用命令:yarn global add pm2
下载好后使用命令启动higcharts-export-server服务
pm2 start ./bin/cli.js --name highcharts-export -- --enableServer 1 --port 3000
pm2 show highcharts-export
pm2 list
然后在服务器模拟一个POST请求
curl -H "Content-Type: application/json" -X POST -d '{"infile":{"title": {"text": "Steep Chart"}, "xAxis": {"categories": ["Jan", "Feb", "Mar"]}, "series": [{"data": [29.9, 71.5, 106.4]}]}}' 127.0.0.1:3000 -o mychart.png
命令执行后会在当前目录下生成一个mychart.png图片
4. 服务端已经配置好了,现在在客户端测试一下。可能你会发现一个问题404或者500的问题,404证明服务器还没有配置好网卡,500证明服务器的防火墙没有把对应的端口开启。如果上面的这些都ok,那么正常情况下你会收到一个respond,而图片会以二进制流返回,至此,图片服务器完毕
5. 图片能正常接收,但是如果所在的服务器没对应的字体的话,就会造图片不能渲染中文的问题。这样就需要在生成图片的主机上安装所需要的字体。
`复制中文字体文件`
CHINESE_FONTS_PATH=/usr/share/fonts/chinese
if [[ ! -d ${CHINESE_FONTS_PATH} ]] ;then
mkdir -p ${CHINESE_FONTS_PATH} &>/dev/null
fi
`拷贝字体并建立字体缓存 ${WORD_TOOL}/fonts 对应缓存存放的目录,WORD_TOOL自定义`
/usr/bin/cp ${WORD_TOOL}/fonts