将jQuery图表转换为PDF

2024-06-07 19:04:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我找到了两个我喜欢的jQuery图表插件-flot和jqPlot。我正在考虑在我的网站前端使用其中一个。在

但是,我还需要能够允许用户以PDF格式导出数据。理想情况下,我正在寻找一个纯Python解决方案,但可以一次运行到Java或PHP。生成的图表的质量是最重要的因素。在

我考虑过的选择是:

  • 在服务器上生成图表,并使用这些图表创建PDF。我已经看过matplotlib和其他几个python图表包,但是这些图表并不像flot或jqPlot那样精巧。在
  • 使用Rhino和环境js在服务器上运行相同的jQuery代码,以某种方式捕获生成的图表并将其插入pdf。这对犀牛来说可能吗?可能有多困难?我看过Rhino canvas项目,但看起来太过时了。在

最好的办法是什么?如果我能让Rhino解决方案正常工作,那就太好了,因为它可以保持前端和生成的pdf之间的一致性。在


Tags: 数据用户服务器插件pdf网站格式图表
3条回答

我建议再看看matplotlib。在

图表是高度可定制的,可以看起来非常抛光。诚然,许多选择一开始可能会让人望而生畏。但是如果你知道怎么做的话,你可以得到很多令人眼花缭乱的效果。在

例如,如果需要阴影,请查看transforms tutorial。在

此外,matplotlib提供高dpi位图图像甚至PDF矢量图形。我不知道使用上面提到的jQuery库来获得更高分辨率的图形有多难。在

将图形转换为图像

据我所知,flot绘制到canvas元素(如果可用)。我在google上搜索了导出画布内容的示例并找到了canvas2image。它可能是,也可能不是一条探索的途径。在

请参阅this StackOverflow question。从那一个开始,导出一个图像可能非常简单(使用Canvas.ToDataUrl(type)),它采用mime类型。我很确定它不会对application/pdf做任何有意义的事情。在

更新:看这里,canvas2image的一个修改版本驻留在flotr源:http://flotr.googlecode.com/svn/trunk/flotr/flotr/prototype/lib/canvas2image.js

生成PDF

客户机上的JavaScript解决方案有:

最终结果

把这两者结合起来,你也许会有一个解决办法。在

您可以使用Python和Qt在服务器上运行headless webkit(呈现引擎),然后将其打印为PDF。使用Qt打印PDF所需的更改列在here中,尽管它们可能不完整。在

这个解决方案将只呈现页面,您可以将图表存储为单独的图像,或者按照建议的路径生成页面的完整PDF。在

相关问题 更多 >

    热门问题