在Ie 7上导出画布图像

时间:2012-11-22 16:39:19

标签: javascript internet-explorer activex

我们使用flot开发了一个复杂的报告应用程序,但是我没有预见到的是我们将会遇到输出问题,尽管一切看起来都很酷但是商业用户无法复制图表。演示,因为输出是画布元素。

我已经找到了几种方法,我甚至找到了将画布转换为图像的方法,但这仅适用于HTML5支持的浏览器,不幸的是我们的用户使用IE7我知道这已经很老了但是我无能为力(相信我,我们尝试过)所以我必须想出一个解决方案,将图形导出为图像格式。

我的最后一次尝试是使用fxcanvas和flashcanvas模拟toDataURL方法,但结果显示有一个32kb的缓冲区,我的图像至少为300kb。

业务用户(高层管理人员)正在推动解决方案,他们显然不明白这里存在​​技术边界,我对任何不涉及以下内容的解决方案持开放态度:

  • 升级/更改浏览
  • 安装Chrome标签等插件。
  • 在服务器或用户计算机上安装cab文件

但是我对任何Active X解决方案或任何不需要安装第三方程序的导出选项都是开放的(MS库除外,他们不必执行任何添加步骤,如注册库)。

2 个答案:

答案 0 :(得分:1)

执行此操作的基本方法是使用canvas.toDataURL("image/png");,但我也找到了此链接

http://nihilogic.dk/labs/canvas2image/

我没有测试过它。

答案 1 :(得分:0)

如果您希望用户获得相同的结果(或者至少尽可能接近),为什么不尝试依赖后端?(假设有一个)只需在后端生成图像并输出标准jpg或png。

我真的不能想到另一个解决方案,即使SVG仅在IE7 +上兼容,不使用后端的最接近的解决方案是使用闪存,因为它是第三方但它是众所周知的并且它内置于现代浏览器。

依赖客户端总是涉及:要求他们升级浏览器/使用第三方插件,所以在未来的项目规划中密切注意,兼容性问题是我认为在Web上最烦人的问题之一发展