4

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

<div id="canvas" style="width:500px; height:300px; outline: 1px solid #000;"></div>​

和 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" });​

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

任何想法为什么会发生这种情况?

4

1 回答 1

8

Raphael 的print方法要求您使用 Cufon-font-files。从上的文档getFont

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

并进一步阅读registerFont

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

有点扭曲......

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

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

于 2012-11-01T08:50:18.583 回答