将JavaScript图形和图表转换为图像

Converting JavaScript Graphs and Charts to an image

本文关键字:转换 图像 JavaScript 图形      更新时间:2023-09-26

有许多JavaScript插件可以绘制图表。有关示例,请参见http://www.queness.com/post/10781/13-chart-and-graph-plotting-javascript-plugins.

我想创建一个图表并将其转换为图像。我尝试过用http://code.google.com/p/wkhtmltopdf/而且效果很好。对于安装,我使用http://www.amberdms.com/?cms=opensource_linux_repositories.

现在,转换为图像。我安装了姊妹产品wkhtmltoimage。Amberdams的回购中没有这个,所以我只使用了一个静态二进制。它覆盖了没有图表的简单页面,但当尝试一个有图表的页面时,它没有在图像中包括JavaScript图表,我得到了以下错误:

[root@localhost ~]# /usr/bin/wkhtmltoimage-amd64 --load-error-handling ignore http://www.bobo.com/lib/plugins/jqPlot/examples/area.html var/www/html/images/example_amd64.jpg
Loading page (1/2)
QPixmap: Cannot create a QPixmap when no GUI is being used   ] 86%
....
QPixmap: Cannot create a QPixmap when no GUI is being used
Rendering (2/2)
Error: Could not write to output file
Segmentation fault
[root@localhost ~]#

有人有什么建议吗?

PS。我正在操作Centos 5.8 86x64,并尝试了wkhtmltoimage-i386和wkhtmltoimages-amd64。

有人有什么建议吗?

感谢

我在一个项目中也有同样的经验,根据您的主机设置,我找到了两个解决方案:

1.使用像这样的"usexserver"参数

    $ ./wkhtmltoimage-amd64 --use-xserver input.html output.jpg
    Loading page (1/2)
    Rendering (2/2)                                                    
    Done

这在我的开发机器上很有魅力,但我的托管提供商不允许我使用该选项,所以我不得不在谷歌代码库中查找答案,从而找到下一个解决方案。

2.使用不推荐使用的静态版本64位或32位

出于某种原因,似乎存在对0.11.0版本的xserver依赖,所以我在不推荐的下载部分使用了一个旧版本,在这种情况下,0.10.0_rc2对我的项目非常有效。

使用此选项时,不需要使用xserver参数:

    $ ./wkhtmltoimage-amd64 input.html output.jpg
    Loading page (1/2)
    Rendering (2/2)                                                    
    Done

我希望这些选择中的任何一个对你都有效。

另一个选项是使用xvfb将wkhtmltoimage命令封装在X服务器实例中。

sudo apt-get install xvfb
xvfb-run --server-args="-screen 0, 1280x1024x24" wkhtmltopdf --use-xserver --javascript-delay 3000 your-html-file.html test.pdf

有关更详细的信息,请查看:http://blog.hugerepo.com/2013/04/28/what-is-the-qpixma/