【问题标题】:wkhtmltopdf extremely slow on Debian without X-serverwkhtmltopdf 在没有 X-server 的 Debian 上非常慢
【发布时间】:2011-09-11 13:38:14
【问题描述】:

对于我的测试环境(Windows 7),将一个非常小的 HTML 文件转换为 PDF 需要 2 秒。在生产 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。

【问题讨论】:

    标签: debian x11 wkhtmltopdf xvfb


    【解决方案1】:

    我假设你可以让 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...)
    • 现在可能存在竞争条件,在这种情况下,您可能需要在启动 wkhtmltopdf 之前先 sleep .5 或其他东西)

    【讨论】:

    • 不幸的是,使用您的代码没有创建 PDF 文件,也没有返回任何内容。
    • 您可以尝试使用 x11vnc 或其他替代方案之一。 x11vnc 可以是无头的。我假设 wkhtmltopdf 需要 X11 服务器才能使用 gui 工具包(壁虎?webkit?)来呈现页面。任何 X11 服务器(甚至是远程服务器……)都可以。检查日志文件以查看 X 会话有什么问题。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-18
      • 2016-06-23
      • 2014-10-21
      • 2017-02-19
      • 2010-12-17
      相关资源
      最近更新 更多