将一个非常小的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。
答案 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"
sleep .5
之前wkhtmltopdf
或其他内容。答案 1 :(得分:1)
wkhtmltopdf会非常慢,在这种情况下它会对图像进行软件渲染,因为没有可用的GPU。
另一种方法是转到http://wkhtmltopdf.org并下载其中一个静态图像。它们可以在真正的无头模式下运行,并且根本不需要X服务器。这仍然很慢,但它具有移动部件较少的优点。