hellosean1025 / node-echarts

Generate chart by echarts in nodejs.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

中文字体乱码解决方案

hellosean1025 opened this issue · 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
})

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

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

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

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

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


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

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

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

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

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

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