【问题标题】:Simple HTML layout engine to convert HTML to an image用于将 HTML 转换为图像的简单 HTML 布局引擎
【发布时间】:2010-09-25 09:42:26
【问题描述】:

我需要一个工具来自动将简单的 HTML 转换为图像。我将控制 HTML 输入,它由简单的文本格式标记和可能的图像链接组成——我不需要能够呈现任意 HTML。有没有一种简单的方法可以做到这一点?

我查看过 Gecko 和 Webkit 等 HTML 布局引擎,但坦率地说,我对它们的选项数量感到不知所措——我不需要完整的网络浏览器!是否可以以这种方式使用这些引擎?有人可以引导我朝着正确的方向前进吗?

其他可能性,例如 browsershots,依赖于真实浏览器的屏幕截图,但我将在可能有很多用户的 Web 服务器上运行此应用程序,因此性能很重要,我担心这种解决方案无法扩展.

想法?

编辑:抱歉忘记提及我的服务器正在运行 Linux,因此 Windows 解决方案无济于事。 :)

【问题讨论】:

    标签: html image layout image-processing rendering


    【解决方案1】:

    回答,我自己的问题我发现了这个有用的工具,它使用 WebKit 呈现页面,然后将输出捕获为图像甚至 PDF 格式!

    http://cutycapt.sourceforge.net/

    这个想法类似于 Jay 提到的 khtml2png,但我更喜欢这个实现。此外,为了将来参考,通过 Xvfb 运行 X 虚拟帧缓冲区并不像我担心的那样占用大量内存。

    【讨论】:

    • 源代码不包含任何makefile,不包含指令;从他们的网站获取 Linux 二进制文件的位置并不是很明显。
    【解决方案2】:

    在它有点笨拙和臃肿之前我使用过 CutyCapt - 需要 Qt。

    IMO,PhantomJs(一个无头 webkit)是迄今为止最好的解决方案,快速、简单和干净。你可以用它做很多事情。

    http://phantomjs.org

    或见this

    【讨论】:

      【解决方案3】:

      如果您在 Linux 上运行并且有可用的 KDE 库,您可能会发现这很有用:khtml2png

      khtml2png 是一个用于创建网页截图的命令行程序。它使用 libkhtml(在 KDE 网络浏览器 Konqueror 中使用的库)。在 khtml2png 2.0.5 到 2.5.0 中,ImageMagick 图形转换工具包中的“转换”用于创建各种图像文件格式的输出文件。 2.6.0及以后的开发会使用Qt库的内置转换。

      另外,要跟进 Vilx 的建议,您可以使用 html2ps 将 HTML 转换为 ps 文件,然后使用 gs (Ghostscript) 将 ps 文件转换为png 或 jpg。请参阅http://www.karakas-online.de/myLinuxTips/ps2png.html 了解一种方法。

      【讨论】:

        【解决方案4】:

        窗户?如果是,那么 HTMLayout 可能会有所帮助 - 它是一个免费的渲染引擎,并且它有一个简单的 API - 从 C/C++ 中使用它是轻而易举的 - 将 HTML 转换为 BMP 并不难。

        http://www.terrainformatica.com/htmlayout/

        它也是免费的。

        【讨论】:

          【解决方案5】:

          我一直很幸运使用 wkhtmltoimage 命令(对于打印输出,wkhtmltopdf),多年来一直在 Ubuntu 中本地可用,如果我记得的话,它总是正确且相当快速地呈现好吧。

          http://wkhtmltopdf.org/

          有几个选项可用,但基本调用如下所示:

          wkhtmltoimage tmp.html tmp.png
          

          【讨论】:

            【解决方案6】:

            也许您可以将 HTML 转换为更容易转换为图像的另一种格式?在谷歌中,我发现了一些叫做 html2ps 和 html2pdf 的东西。从 PS 到 EPS 仅一步之遥,并且已经可以渲染为图像。或者类似的东西。

            【讨论】:

            • 这是个好建议。例如 Ghostscript 可以从 ps 源文件转换为各种图像格式,而这些文件又可以由 html2ps 创建
            【解决方案7】:

            您可以使用PDFCreator 应用程序。此应用程序允许打印多种格式,包括各种图像。它包括一个 ActiveX / com 服务器,可让您相当轻松地自动化该过程。您几乎可以转换任何可以打印的东西。 这种方法的一个缺点是,由于它使用打印框架进行转换,一次只能转换一个文档,所以我不知道它是否适合网站。

            【讨论】:

            • 请注意,提交者在 Linux 上运行,因此 Windows (ActiveX/com) 解决方案在这种情况下没有用处。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-07-22
            • 1970-01-01
            • 2011-06-02
            • 2010-10-14
            相关资源
            最近更新 更多