我目前正在尝试使用raphael生成的图表从html页面生成pdf。
除了Internet Explorer之外,它在每个浏览器上运行良好< 9 raphael使用vml。
我正在使用wkhtmltopdf来转换页面,它使用webkit来呈现页面,因此在使用IE时它不支持vml。
有没有办法迫使Raphael在IE中渲染svg而不是vml? 我知道它不会显示,但我要做的是在vml中再渲染一次,在svg中再渲染一次。
我已经看到我可以设置属性
Raphael.type = "SVG";
Raphael.svg = true;
但在实例化对象后它不起作用。
答案 0 :(得分: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将遵循现代浏览器的代码路径,这显然不起作用。我查看了这些错误,他们似乎无法修复或解决这些问题。
答案 1 :(得分:0)
很多命令引用R.vml
尝试设置它,
Raphael.vml = false;
答案 2 :(得分:0)
根据这个帖子(虽然有点旧)但是没有办法让IE接受SVG元素:
但是,我不明白你的意思是“它正在使用webkit,因此它在使用IE时不支持VML ”。据我所知,WebKit是一个不同的渲染器,它与IE无关。也许如果你在问题上进一步发展,我们可以帮助找到解决方案。