Raphael的`getFont`方法不起作用(?)

And*_*iga 4 javascript svg raphael

我在使用Raphael.jsprint方法创建文本时遇到了一些问题.更准确地说,该getFont方法需要的print方法返回一个undefined值.我在这里放了一个非常简单的小提琴,试图找到问题的根源,但到目前为止没有运气.下面是相同的小提琴代码:

<div id="canvas" style="width:500px; height:300px; outline: 1px solid #000;"></div>?
Run Code Online (Sandbox Code Playgroud)

和JavaScript:

var canvas, font, text;

canvas = new Raphael(document.getElementById("canvas", 500, 300));
font = canvas.getFont("Arial");
text = canvas.print(0, 0, "Some text", font, 24).attr({ "fill": "#C00" });?
Run Code Online (Sandbox Code Playgroud)

创建画布,甚至绘制路径(尽管字体的值未定义),但字体对象未定义返回.我也试过"Arial"字体.毕竟,这两个是标准的,所以我们不是在谈论自定义字体.

任何想法为什么会这样?

m90*_*m90 8

Raphael的print方法要求你使用Cufon-font-files.来自以下文档getFont:

通过给定参数查找已注册字体中的字体对象.

并进一步阅读registerFont:

将给定字体添加到Raphaël的已注册字体集中.应该用作Cufón字体文件中的内部调用.

有点扭曲.....

因此,如果您需要/需要使用print您必须转换并以正确格式提供字体文件的方法,请在此处阅读cufon .

如果你想使用系统字体(或webfonts),你可以使用Paper.text()非常容易使用的方法,你可以使用CSS等设置文本样式.