hellosean1025 / node-echarts

Generate chart by echarts in nodejs.
281 stars 88 forks source link

中文字体乱码解决方案 #12

Open hellosean1025 opened 6 years ago

hellosean1025 commented 6 years ago

中文无法显示是因为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 })

kissy-xxy commented 6 years ago

下载了最新版,Canvas.registerFont是undefined

suifengfengye commented 6 years ago

项目里嵌套项目是不是不太好。

另外,npm install 一次就可以了么?如果发不到linux上还需不需要重新构建。

suifengfengye commented 6 years ago

@suxiaoxin 我使用了node-canvas之后,发布到linux服务器上,遇到了这个问题。https://github.com/Automattic/node-canvas/issues/1075

你有遇到么?请问是怎么解决的呢?在线等...


竟然没等到。。。还是自己解决了(想了两天)

使用了2x图来将图片展示清晰。将画布宽高、echarts的刻度、文本等等全都调成正常的两倍,就可以将图片展示清晰了。 而要告诫大家的是,echarts初始化时的第三个配置参数中的devicePixelRatio以及getDataURL中的pixelRatio这两个参数对清晰度并没有什么卵影响。

JieChang commented 6 years ago

"项目里嵌套项目是不是不太好。

另外,npm install 一次就可以了么?如果发不到linux上还需不需要重新构建。"

有什么好方法解决吗? @suifengfengye

Pimaweichai commented 5 years ago

https://github.com/Pimaweichai/FishNodeEcharts

hijustgo commented 4 years ago

实测linux系统直接安装微软雅黑字体可以解决