如何强制Raphael JS输出为SVG格式

3
我目前正在尝试从一个包含raphael生成的图表的html页面中生成pdf文件。除了Internet Explorer < 9使用vml之外,它在每个浏览器上都很好用。
我使用wkhtmltopdf来转换页面,它使用webkit来渲染页面,因此在使用IE时不支持vml。
有没有一种方法可以强制Raphael在IE中呈现svg而不是vml? 我知道它不会显示,但我会先以vml格式呈现它,然后再以svg格式呈现一次。
我看到我可以设置属性
Raphael.type = "SVG";
Raphael.svg = true; 

但是在对象被实例化之后,它就无法工作了。
3个回答

2

我也是那些希望Internet Explorer生成SVG的人之一。它不必显示,只需发送到服务器即可。因此,我研究了这个问题:

您可以通过以下方式强制Raphael认为它应该生成一个SVG:

    var rProto, paper;

    rProto = Raphael.prototype.raphael;
    rProto.svg = true;
    rProto.vml = false;
    rProto.type = 'SVG';

    var paper = Raphael(...);

然而,Raphael现在会抛出大量错误,因为Internet Explorer将遵循现代浏览器的代码路径,这显然行不通。我查看了这些错误,它们似乎不容易修复或规避。

0

许多命令都引用了R.vml,尝试将其设置为同样的内容。

Raphael.vml = false;

很遗憾,这个方法不起作用。一旦对象被实例化,似乎没有任何方法可以改变它。 - Moop

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接