1

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

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

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

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

  • 升级/更改浏览
  • 安装chrome tab之类的插件。
  • 在服务器或用户机器上安装 cab 文件

但是,我对任何 Active X 解决方案或任何不需要安装 3rd 方程序的导出选项持开放态度(除了 MS 库,它们不需要执行任何附加步骤,如注册库)。

4

2 回答 2

1

基本的方法是使用canvas.toDataURL("image/png");,但我也为你找到了这个链接

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

我没有测试过。

于 2013-06-02T05:38:58.020 回答
0

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

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

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

于 2012-11-22T16:57:09.007 回答