wkhtmltopdf在没有X-server的Debian上非常慢

时间:2011-06-09 09:48:50

标签: debian x11 wkhtmltopdf xvfb

将一个非常小的HTML文件转换为PDF需要2秒才能完成我的测试环境(Windows 7)。在生产Web服务器上,相同的文件(Debian)需要193秒。

正在使用托管主机解决方案运行Web服务器。他们安装了wkhtmltopdf并告诉我必须使用xvfb-run才能工作:

xvfb-run -a -s "-screen 0 640x480x16" wkhtmltopdf "input_file.html" "output_file.pdf"

现在我已经抱怨使用这个命令生成一个简单的PDF需要193秒,他们说他们无能为力。真的是这样吗?

编辑:不知何故,我的托管主机支持在一些轻推后解决了这个问题(现在需要0.8秒)。我认为他们可能已经重新编译了静态wkhtmltopdf二进制文件或其他东西。我现在运行没有xvfb-run的wkhtmltopdf。

2 个答案:

答案 0 :(得分:2)

我假设你可以让xvfb继续运行

xvfb :1 -screen 0 640x480x16 &
DISPLAY=:1 wkhtmltopdf "input_file1.html" "output_file1.pdf"
DISPLAY=:1 wkhtmltopdf "input_file2.html" "output_file2.pdf"
DISPLAY=:1 wkhtmltopdf "input_file3.html" "output_file3.pdf"
  • 我没有使用xvfb的经验(我使用x11vnc,Xnest和Xephyr采用类似的方法,如上所示)。
  • 使用未使用的vtty(:1,:2,:3 ......)
  • 现在可能存在竞争条件,在这种情况下,您可能需要在启动sleep .5之前wkhtmltopdf或其他内容。

答案 1 :(得分:1)

wkhtmltopdf会非常慢,在这种情况下它会对图像进行软件渲染,因为没有可用的GPU。

另一种方法是转到http://wkhtmltopdf.org并下载其中一个静态图像。它们可以在真正的无头模式下运行,并且根本不需要X服务器。这仍然很慢,但它具有移动部件较少的优点。