node-echarts icon indicating copy to clipboard operation
node-echarts copied to clipboard

中文字体乱码解决方案

Open hellosean1025 opened this issue 7 years ago • 6 comments

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

hellosean1025 avatar Oct 14 '17 04:10 hellosean1025

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

kissy-xxy avatar Dec 05 '17 13:12 kissy-xxy

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

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

suifengfengye avatar Jan 22 '18 05:01 suifengfengye

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

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


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

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

suifengfengye avatar Jan 23 '18 01:01 suifengfengye

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

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

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

JieChang avatar Jun 26 '18 14:06 JieChang

https://github.com/Pimaweichai/FishNodeEcharts

Pimaweichai avatar Nov 22 '18 03:11 Pimaweichai

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

hijustgo avatar Dec 21 '19 02:12 hijustgo