我发现了两个我喜欢的jQuery图表插件 – flot和jqPlot.我正在考虑在我的网站的前端使用其中一个.
但是,我还需要能够允许用户以PDF格式导出数据.我理想地寻找纯Python解决方案,但可以推送到Java或PHP.生成的图表的质量是最重要的因素.
我考虑的选项是:
>在服务器上生成图表,并使用这些图表创建PDF.我已经看过matplotlib和其他几个python图表包,但是图表看起来并不像flot或jqPlot那样精致.
>使用Rhino和Env.js在服务器上运行相同的jQuery代码,并以某种方式捕获生成的图表并将其插入到PDF中.这可能与Rhino有关吗?可能有多难?我见过Rhino-canvas项目,但看起来已经过时了.
解决方法
将图形转换为图像
据我所知,flot绘制到canvas元素(如果可用).我搜索了导出画布内容的示例,例如找到了canvas2image.它可能是也可能不是探索的途径.
见this StackOverflow question.从那一个开始,导出图像可能非常简单(使用带有mime类型的Canvas.ToDataUrl(type).我很确定它不会对application / pdf做任何有意义的事情,但是……).
更新:嗯,看看这里,canvas2image的修改版本位于flotr源代码:http://flotr.googlecode.com/svn/trunk/flotr/flotr/prototype/lib/canvas2image.js
生成PDF
有一些解决方案可以在客户端的JavaScript中生成PDF:
> CollinsPDF
> jsPDF
最终结果
结合这两个,你可能有一个解决方案.