1

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

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

现在,转换为图像。我安装了姊妹产品 wkhtmltoimage。amberdms 在他们的仓库中没有这个,所以我只使用了一个静态二进制文件。它覆盖了没有图表的简单页面,但是在尝试使用图表的页面时,它不包含图像中的 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 和 wkhtmltoimage-amd64。

有没有人有什么建议?

谢谢

4

2 回答 2

2

我在我正在工作的项目中也有同样的经历,这取决于您的主机设置,我找到了两个解决方案:

1.像这样使用'use-xserver'参数

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

这在我的开发机器上就像一个魅力,但是我的托管服务提供商不允许我使用该选项,所以我不得不在谷歌代码存储库中挖掘答案,从而引导我找到下一个解决方案。

2.使用已弃用的静态版本64 位32 位

出于某种原因,xserver 似乎依赖于 0.11.0 版本,因此我使用了已弃用的下载部分中提供的旧版本,在这种情况下,0.10.0_rc2 非常适合我的项目。

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

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

我希望这些选项中的任何一个都适合您。

于 2012-09-10T02:07:33.213 回答
0

另一种选择是使用 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/

于 2013-04-30T11:53:33.230 回答