node-echarts
node-echarts copied to clipboard
中文字体乱码解决方案
中文无法显示是因为node-canvas库缺乏相应的字体,node-canvas某一分支提供了加入字体的api,下面是解决办法:
git clone https://github.com/chearon/node-canvas.git ,然后进入到clone的项目目录,执行npm install
下载所需要的字体
具体代码如下:
var node_echarts = require('node-echarts'); var path = require('path'); var Canvas =require('./node-canvas'); //这里的路径是刚clone项目路径 Canvas.registerFont(path.join(__dirname, "华文仿宋.ttf"), { family: "华文仿宋"}); node_echarts({ canvas: Canvas, font: '12px 华文仿宋', path: __dirname + '/中文字体demo.png', option: option, width: 1000, height: 500 })
下载了最新版,Canvas.registerFont是undefined
项目里嵌套项目是不是不太好。
另外,npm install 一次就可以了么?如果发不到linux上还需不需要重新构建。
@suxiaoxin 我使用了node-canvas之后,发布到linux服务器上,遇到了这个问题。https://github.com/Automattic/node-canvas/issues/1075
你有遇到么?请问是怎么解决的呢?在线等...
竟然没等到。。。还是自己解决了(想了两天)
使用了2x图来将图片展示清晰。将画布宽高、echarts的刻度、文本等等全都调成正常的两倍,就可以将图片展示清晰了。 而要告诫大家的是,echarts初始化时的第三个配置参数中的devicePixelRatio以及getDataURL中的pixelRatio这两个参数对清晰度并没有什么卵影响。
"项目里嵌套项目是不是不太好。
另外,npm install 一次就可以了么?如果发不到linux上还需不需要重新构建。"
有什么好方法解决吗? @suifengfengye
https://github.com/Pimaweichai/FishNodeEcharts
实测linux系统直接安装微软雅黑字体可以解决